Laravel 使用同步方法的 wherePivot 不起作用
Laravel wherePivot with sync method not working
我正在尝试同步数据但出现错误。
SQLSTATE[HY000]: General error: 1364 Field 'model_type' doesn't have a default value (SQL: insert into model_has_roles
(dealer
, dealership_id
, model_id
, role_id
) values (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')
]
]);
我正在尝试同步数据但出现错误。
SQLSTATE[HY000]: General error: 1364 Field 'model_type' doesn't have a default value (SQL: insert into
model_has_roles
(dealer
,dealership_id
,model_id
,role_id
) values (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')
]
]);