具有同步方法的Laravel wherePivot不工作
我正在尝试同步数据,但出现错误 SQLSTATE[HY000]:一般错误:1364字段“模型类型”没有默认值(SQL:insert into具有同步方法的Laravel wherePivot不工作,laravel,many-to-many,laravel-5.5,Laravel,Many To Many,Laravel 5.5,我正在尝试同步数据,但出现错误 SQLSTATE[HY000]:一般错误:1364字段“模型类型”没有默认值(SQL:insert intomodel\u has\u roles(经销商,经销商id,模型id,角色id)值(1,61,85,13)) //控制器代码 $user = User::findOrFail($id); $user->first_name = $request->get('first_name'); $user->last_
model\u has\u roles
(经销商
,经销商id
,模型id
,角色id
)值(1,61,85,13))
//控制器代码
$user = User::findOrFail($id);
$user->first_name = $request->get('first_name');
$user->last_name = $request->get('last_name');
$user->phone = $request->get('phone_no');
$user->title = $request->get('title');
$user->mobile = $request->get('mobile');
$user->save();
$user->dealerRoles()->wherePivot('dealership_id', session('dealership_id'))->sync([$request->get('role_id') => ['dealer' => true, 'dealership_id' => session('dealership_id')]]);
//用户模型
public function dealerRoles()
{
return $this->belongsToMany(Role::class, 'model_has_roles', 'model_id', 'role_id');
}
您需要添加到同步方法
$user->dealerRoles()
->wherePivot('dealership_id', session('dealership_id'))
->sync([
$request->get('role_id') => [
'model_type' => 1,
'dealer' => true,
'dealership_id' => session('dealership_id')
]
]);
在您的表中,
model\u具有\u角色
columnmodel\u类型
是必需的。您还必须为此列设置值。@RafałMigda如何设置该值?您需要添加到同步方法$user->dealerRoles()->wherePivot('dealgent_id',session('dealgent_id'))->sync([$request->get('role_id')=>['model_type'=>1,'dealgener'=>true,'dealgent_id'=>session('dealgenerator_id')]);好的,非常感谢你working@RafałMigda请你把这个作为答案补充一下好吗?我想这可能会帮助别人解决这个问题。