laravel-cms角色管理界面和控制器(2)

唉呀,上一节课忽视了一个东西,这个roles表和rights表是一对一,rights是有一个外键对应roles表的,这里我们修改一下:

创建Right的model

php artisan make:model Right

创建Right的factory

php artisan make:factory RightFactory

更改RightFactory.php

<?php

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;

class RightFactory extends Factory
{
    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            //
            'content'=>$this->faker->paragraph
        ];
    }
}

注:这里不用配置那个role_id外键,因为这个是在迁移的时候动态生成的,和那个role中的id是对应的。

更改RoleSeeder.php

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Role;
use App\Models\Right;
class RoleSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
        Role::factory(5)->has(Right::factory()->count(1))->create();
    }
}

更改Models\Role.php,在这里创建一对一关系:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    use HasFactory;
    public $timestamps = false;
    public function right()
    {
        return $this->hasOne(Right::class);
    }
}

更改Models\Right.php,创建一对一的从属的关系:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Right extends Model
{
    use HasFactory;
    public $timestamps = false;
    public function user(){
        return $this->belongs(Role::class);
    }
}

执行迁移文件:

php artisan db:seed --class=RoleSeeder

执行完后,可以看到roles表和rights表里都添加了一些测试数据

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章