php - 如何在 Laravel 中使用附加或同步方法在数据透视表中插入多个值
问题描述
我正在使用 laravel 多对多关系。在我的数据库种子文件中,我pivot_table
使用以下attach()
方法添加多个插入 -
$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' 为第 1 行的列 'permission_id'")
如果我使用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));
}
}
解决方案
->first()
不返回 id,你应该像这样使用:->first()->id
推荐阅读
- react-admin - react-admin: SimpleForm in Isolation
- python - 如何避免舍入浮点的python格式化
- pyparsing - 带有 Optional() 子类的 Pyparsing 语法
- python - 两个轴上的 Bbox 故障
- android - developer.android.com 或任何网站的暗模式?
- wordpress - 重写规则以使用查询字符串简化路径
- c# - C# 拆分 XML InnerText
- html - chrome 和 edge 上的滚动条,但 Internet Explorer 上没有
- assembly - 如何在汇编程序中检查数字是偶数还是奇数
- javascript - 如何将网站上的原始文本保存为所有访问该网站的用户都相同?