【发布时间】:2019-10-20 22:11:50
【问题描述】:
您好,我的数据库中有错误。用户在用户表中注册,现在他必须发布广告。我正在尝试在广告表中获取他的 ID。 但它返回给我这个错误:
SQLSTATE [23000]:违反完整性约束:1048 列 'user_id' 不能为空 (SQL: insert into
ads(user_id,services,head,level_study,language,experience,localization,description,contact,updated_at,created_at) 值(?,户主,管家,BAC+2,一点,2年, Yopougon, pnjjjk, 09789070, 2019-06-05 08:31:38, 2019-06-05 08:31:38))
public function store(Adstore $request)
{
$validated = $request->validated();
$user_id = Auth::user()['id'];
$ad = new Ad();
$ad->user_id = $user_id;
$ad->services = $validated['dropdown_service'];
$ad->titre = $validated['title'];
$ad->niveau_etude = $validated['dropdown_etude'];
$ad->langue = $validated['langue'];
$ad->experience = $validated ['experience'];
$ad->localisation = $validated ['local'];
$ad->description = $validated ['description'];
$ad->contact = $validated ['contact'];
$ad->save();
return redirect()->route('accueil')->with('success','Votre annonce a été postée.');
}
【问题讨论】:
-
$user_id包含什么?var_dump($user_id); -
尝试使用
dd($user_id);转储$user_id的内容。还可以考虑转储整个用户对象:dd(Auth::user());你能发布结果吗? -
尝试 $user_id = Auth::user()->id 代替 Auth::user()['id'];顺便说一句,小优化:使用质量分配而不是单个属性分配。它会更干净。
-
当我在这里执行此操作时出现错误:尝试获取非对象的属性 'id' 如果我输入注释 // $ user_id = Auth :: user () -> id;我像那样转储 dd (Auth :: user ());我有这个结果:null。
-
您需要先通过身份验证才能使用
Auth::user()
标签: php mysql laravel laravel-5.8 mysql-error-1048