【发布时间】:2020-10-17 21:58:32
【问题描述】:
我正在尝试同步数据但出现错误。
SQLSTATE[HY000]:一般错误:1364 字段“model_type”没有默认值(SQL:插入
model_has_roles(dealer,dealership_id,model_id,role_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');
}
【问题讨论】:
-
在您的表中
model_has_roles列中model_type是必需的。您还必须为此列设置值。 -
@RafałMigda 如何设置该值?
-
需要添加同步方法 $user->dealerRoles()->wherePivot('dealership_id', session('dealership_id'))->sync([$request->get('role_id ') => [ 'model_type' => 1, 'dealer' => true, 'dealership_id' => session('dealership_id')]]);
-
好的,非常感谢你现在工作
-
@RafałMigda 请您将此添加为答案吗?我可能会帮助其他人解决这个问题。
标签: laravel many-to-many laravel-5.5