如何在laravel种子外键

时间:2017-11-09 06:33:41

标签: laravel laravel-5 laravel-5.5 laravel-migrations

我正在使用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);

permissiontableseeder

DB::table('roles')->insert([
'name' => 'Administrator',
'guard_name' => 'web',
]);

RoleTableSeeder

DB::table('roles')->insert([
'name' => 'Admin',
'guard_name' => 'web',
]);

RolehaspermissionTableSeeder

DB::table('role_has_permissions')->insert([
'permission_id' => '1',
'role_id' => '1',
]);

ModelhasrolesTableSeeder

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

这是错误的屏幕截图

  

http://prntscr.com/h83ttx

帮助我获得种子谢谢

2 个答案:

答案 0 :(得分:1)

检查表名

DB::table('roles')->insert([
'name' => 'Administrator',
'guard_name' => 'web',
]);

on permissionstableseeder

这应该是这样的

DB::table('permissions')->insert([
'name' => 'Administrator',
'guard_name' => 'web',
]);

希望这可以帮助你

答案 1 :(得分:0)

我们可以这样做...

$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)
        ]);
}