MysqlUser.php 1.21 KB
Newer Older
1
<?php
Simon Schaufelberger's avatar
Simon Schaufelberger committed
2
declare(strict_types=1);
3

Simon Schaufelberger's avatar
Simon Schaufelberger committed
4 5 6
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Schema\Blueprint;
7 8
use Illuminate\Support\Facades\Schema;
use Jenssegers\Mongodb\Eloquent\HybridRelations;
9

Jens Segers's avatar
Jens Segers committed
10 11
class MysqlUser extends Eloquent
{
12 13
    use HybridRelations;

Jens Segers's avatar
Jens Segers committed
14
    protected $connection = 'mysql';
15 16 17
    protected $table = 'users';
    protected static $unguarded = true;

Simon Schaufelberger's avatar
Simon Schaufelberger committed
18
    public function books(): HasMany
19 20 21 22
    {
        return $this->hasMany('Book', 'author_id');
    }

Simon Schaufelberger's avatar
Simon Schaufelberger committed
23
    public function role(): HasOne
24
    {
Jens Segers's avatar
Jens Segers committed
25
        return $this->hasOne('Role');
26 27
    }

Simon Schaufelberger's avatar
Simon Schaufelberger committed
28
    public function mysqlBooks(): HasMany
29 30 31 32
    {
        return $this->hasMany(MysqlBook::class);
    }

33
    /**
Jens Segers's avatar
Jens Segers committed
34
     * Check if we need to run the schema.
35
     */
Simon Schaufelberger's avatar
Simon Schaufelberger committed
36
    public static function executeSchema(): void
37
    {
Simon Schaufelberger's avatar
Simon Schaufelberger committed
38
        /** @var \Illuminate\Database\Schema\MySqlBuilder $schema */
39 40
        $schema = Schema::connection('mysql');

Jens Segers's avatar
Jens Segers committed
41
        if (!$schema->hasTable('users')) {
Simon Schaufelberger's avatar
Simon Schaufelberger committed
42
            Schema::connection('mysql')->create('users', function (Blueprint $table) {
Jens Segers's avatar
Jens Segers committed
43 44
                $table->increments('id');
                $table->string('name');
Jens Segers's avatar
Jens Segers committed
45
                $table->timestamps();
Jens Segers's avatar
Jens Segers committed
46
            });
Jens Segers's avatar
Jens Segers committed
47
        }
48 49
    }
}