我正在尝试通过用户模型获取当前用户,但它返回null。
$user = new User;
//$user = Auth::user();
$product = new Product;
$product->user_id = $user->user_id;
$product->save();
这就是我得到的 Integrity constraint violation: 1048 Column 'user_id' cannot be null
当我尝试使用Auth :: user()时,它会出现同样的错误。
这是我的自定义登录控制器..
public function auth(Request $request)
{
$this->validate($request, [
'email' => 'required|email|max:255',
'password' => 'required|min:6',
]);
$data = $request->only('email', 'password');
if (Auth::attempt($data)) {
$email = $request->email;
$users = DB::table('users')
->where('email', $email)
->select('users.*', 'user_name')
->get();
Session::put('set', $users);
if ($users[0]->is_admin == '1') {
return redirect()->intended('adminDashboard');
}else{
return redirect()->intended('dashboard');
}
}else{
return back()->withInput()->witherrors(['Email or password did not match!']);
}
}
这段代码出了什么问题?
答案 0 :(得分:0)
请尝试:$product->user_id = Auth::id();
答案 1 :(得分:0)
更改此行:
$product->user_id = $user->user_id;
到此:
$product->user_id = auth()->user()->id;
或使用关系来创建产品:
auth()->user()->product()->create($productData);
答案 2 :(得分:0)
如果您获得当前用户详细信息而不是用户下面的代码。
$loggedInUser = Auth::user();
在用户表中插入详细信息
$loggedInUser['data1'] = $data1;
$loggedInUser['data2'] = $data2;
$loggedInUser['data3'] = $data3;
保存用户详细信息
$loggedInUser->save();