如何在 Laravel 中播种外键

Sid*_*art 1 laravel laravel-5 laravel-migrations laravel-5.5

我正在使用 spatie/laravel-permission 包来获取角色和权限

但这里的种子永久角色和权限出现问题是数据库列表链接

https://github.com/spatie/laravel-permission/blob/master/database/migrations/create_permission_tables.php.stub

我制作这些数据播种机用于播种

 $this->call(UsersTableSeeder::class);
 $this->call(PermissionsTableSeeder::class);
 $this->call(RolesTableSeeder::class);
 $this->call(RolehaspermissionTableSeeder::class);
 $this->call(ModelhasrolesTableSeeder::class);
Run Code Online (Sandbox Code Playgroud)

许可表播种者

DB::table('roles')->insert([
'name' => 'Administrator',
'guard_name' => 'web',
]);
Run Code Online (Sandbox Code Playgroud)

角色表播种者

DB::table('roles')->insert([
'name' => 'Admin',
'guard_name' => 'web',
]);
Run Code Online (Sandbox Code Playgroud)

RolehaspermissionTableSeeder

DB::table('role_has_permissions')->insert([
'permission_id' => '1',
'role_id' => '1',
]);
Run Code Online (Sandbox Code Playgroud)

模型hasrolesTableSeeder

DB::table('model_has_roles')->insert([
'role_id' => '1',
'model_id' => '1',
'model_type' => 'App\User',
]);
Run Code Online (Sandbox Code Playgroud)

这是错误的屏幕截图

http://prntscr.com/h83ttx

帮我找种子谢谢

Bir*_*ira 5

我们可以这样做...

$coursesIDs = DB::table('courses')->pluck('id');
$studentsIDs= DB::table('students')->pluck('id');

foreach (range(1,50) as $index) {
        DB::table('course_student')->insert([
            'course_id' => $faker->randomElement($coursesIDs)
            'student_id' => $faker->randomElement($studentsIDs)
        ]);
} 
Run Code Online (Sandbox Code Playgroud)