我试图在控制器中为我的前端调用我的用户的ID。后台Auth :: id()就像一个魅力,但是当我尝试在控制器中为我的后台调用它时,我得到一个错误,我的user_id不能为null。意味着Auth :: id()似乎不起作用。因此,似乎Laravel只识别后台的签名用户,我不知道为什么。
这是我的前端控制器的存储功能:
public function store(Request $request)
{
$optionElection = new OptionElection();
//this returns null
$optionElection->user_id = Auth::id();
// this also returns null
$optionElection->option = Auth::name();
$optionElection->votes = 0;
$optionElection->election_id = $request['election_id'];
$optionElection->accepted = 0;
if ($optionElection->save()) {
return response()
->json($optionElection);
}
}
当我尝试存储数据时,我总是检查我是否使用Laravel Auth登录后台。
答案 0 :(得分:0)
你有没有试过\Auth::id()
。 ?
这应该是我认为的。
答案 1 :(得分:0)
如果用户主动登录并且控制器方法包含auth
中间件,则这些帮助程序方法将仅检索经过身份验证的用户或id。如果不是,他们只会返回null。
\Auth::id();
auth()->id();
答案 2 :(得分:0)
$user = auth()->user();
然后
$optionElection->user_id = $user->id
;