你好,我的数据库有错误。用户在用户表中注册,现在他必须发布广告。我正在尝试在ads表中获取他的ID。 但这会返回此错误:
SQLSTATE [23000]:违反完整性约束:1048列 'user_id'不能为null(SQL:插入
ads
(user_id
,services
,head
,level_study
,language
,{{ 1}},experience
,localization
,description
,contact
,updated_at
) 值(?,家庭,管家,BAC + 2,一点,2年, Yopougon,pnjjjk,09789070,2019-06-05 08:31:38,2019-06-05 08:31:38))
created_at
答案 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;” 它会起作用。