【发布时间】:2018-12-17 05:49:09
【问题描述】:
我正在使用 laravel 多对多关系。在我的数据库种子文件中,我使用 attach() 方法在 pivot_table 添加多个插入 -
$role_admin->permissions()->attach(array($permission_create,$permission_read,$permission_update,$permission_delete));
但是当我运行db:seed artisan command 时,它会显示此错误。
PDOException::("SQLSTATE[HY000]: 一般错误: 1366 整数值不正确: '{"id":1,"name":"Create","slug":"Create","description":"这是基本的创建权限","created_at":"2018-12-17 05:23:31","upda' for column 'permission_id' at row 1")
如果我使用 sync() 而不是 attach() 则显示此错误。
ErrorException : 非法偏移类型
现在,我想知道如何在我的permisson_role pivot Table 中一次多个值
这是我的RoleTableSeeder 示例...
class RoleTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$permission_create=Permission::where('slug','Create')->first();
$permission_read=Permission::where('slug','Read')->first();
$permission_update=Permission::where('slug','Update')->first();
$permission_delete=Permission::where('slug','Delete')->first();
$role_admin=new Role;
$role_admin->name="Admin";
$role_admin->slug=ucfirst("admin");
$role_admin->description="This is Super-Admin Role";
$role_admin->save();
$role_admin->permissions()->attach(array($permission_create,$permission_read,$permission_update,$permission_delete));
//$role_admin->permissions()->sync(array($permission_create,$permission_read,$permission_update,$permission_delete));
}
}
【问题讨论】: