违反完整性约束:1048列

时间:2019-06-05 11:44:03

标签: php laravel laravel-5.8

enter image description here

enter image description here

你好,我的数据库有错误。用户在用户表中注册,现在他必须发布广告。我正在尝试在ads表中获取他的ID。 但这会返回此错误:

  

SQLSTATE [23000]:违反完整性约束:1048列   'user_id'不能为null(SQL:插入adsuser_id servicesheadlevel_studylanguage,{{ 1}},   experiencelocalizationdescriptioncontactupdated_at)   值(?,家庭,管家,BAC + 2,一点,2年,   Yopougon,pnjjjk,09789070,2019-06-05 08:31:38,2019-06-05   08:31:38))

created_at

3 个答案:

答案 0 :(得分:0)

对代码进行如下更改:

在控制器中:

public function store(Adstore $request)
{
    $validated = $request->validated();

    $user_id = Auth::user()->id;

    $ad = Ad::create([
        'user_id' => $user_id,        
        'services' => $validated['dropdown_service'],        
        'titre' => $validated['title'],        
        'niveau_etude' => $validated['dropdown_etude'],        
        'langue' => $validated['langue'],        
        'experience' => $validated['experience'],        
        'localisation' => $validated['local'],        
        'description' => $validated['description'],        
        'contact' => $validated['contact'],        
    ]);

    if($ad){
        return redirect()->route('accueil')->with('success','Votre annonce a été postée.');
    } else {
        return redirect()->route('accueil')->with('error','Something went wrong.');
    }    
}

答案 1 :(得分:0)

您必须访问auth用户ID,例如$ user_id = Auth :: user()-> id;

答案 2 :(得分:0)

代替“ $ user_id = Auth :: user()['id'];”使用这个:“ $ user_id = Auth :: user()-> id;” 它会起作用。