唉呀,上一节课忽视了一个东西,这个roles表和rights表是一对一,rights是有一个外键对应roles表的,这里我们修改一下:
php artisan make:model Rightphp artisan make:factory RightFactory<?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是对应的。
<?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();
}
}
<?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);
}
}
<?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 条评论) “” |