具有同步方法的Laravel wherePivot不工作

具有同步方法的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_

我正在尝试同步数据,但出现错误

SQLSTATE[HY000]:一般错误:1364字段“模型类型”没有默认值(SQL:insert into
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角色
column
model\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请你把这个作为答案补充一下好吗?我想这可能会帮助别人解决这个问题。