как я могу исправить "SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'user_id' не может быть пустым" - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть функция обновления в моем пользовательском контроллере, которая не работает должным образом

, когда я хочу обновить роль пользователя из отношения "многие ко многим" в моделях с помощью функции обновления ... но я получаю эту ошибку:

SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'user_id' не может быть пустым (SQL: вставить в role_user (role_id, user_id) значения (2,?))

но в функции магазина я не получаю эту ошибку

я использую LARAVEL 6

модель пользователя:

 public function role(){
    return $this->belongsToMany(role::class , 'role_user' ,'user_id','role_id');
}

образец для подражания:

public function user(){
    return $this->belongsToMany(user::class ,'role_user' ,'role_id','user_id');
}

моя функция в контроллере

public function update(Request $request, user $user)
{
    if ( $request['image']){
        $file = $request['image'];
        $imgname = $file->getClientOriginalName();
        $img=$this->ImageProfileUploader ($file,'/upload/profile/');
    }else{
        $imgname=$user->image;
    }
    $data=$request->all ();
    $data['image']=$imgname;
    $user->role()->sync ($request->input ('role'));
    $user->update ($data);
    session()->flash('update_user','کاربر مورد نظر با موفقیت بروزرسانی شد');
    return back();
}
...