我正在尝试将当前登录的用户附加到此请求中,以便我可以将其保存在数据库中。请问有人可以指出我正确的方向吗?
public function store(CreateLeadStatusRequest $request)
{
$input = $request->all();
$leadStatus = $this->leadStatusRepository->create($input);
Flash::success('Lead Status saved successfully.');
return redirect(route('lead-statuses.index'));
}
所以,我用array_merge
想出了以下方法,但一定有更好的方法,肯定吗?
public function store(CreateLeadStatusRequest $request)
{
$input = $request->all();
$userDetails = array('created_by' => Auth::user()->id, 'modified_by' => Auth::user()->id);
$merged_array = array_merge($input, $userDetails);
$leadStatus = $this->leadStatusRepository->create($merged_array);
Flash::success('Lead Status saved successfully.');
return redirect(route('lead-statuses.index'));
}
因此,您可以使用Auth
外观来获取当前登录用户的信息。
对于拉拉维尔 5 - 5.1
Auth::user() \It will give you nice json of current authenticated user
对于 Laravel 5.2 到最新版本
Auth::guard('guard_name')->user() \Result is same
在laravel 5.2中,有一个名为多重身份验证的新功能,它可以帮助您开箱即用地使用多个表进行多重身份验证,这就是为什么使用guard('guard_name')
函数来获取经过身份验证的用户的原因。
这是处理此类方案而不是附加或加入的最佳方法。
public function store(CreateLeadStatusRequest $request)
{
$input = $request->all();
$userDetails = Auth::user(); //Or Auth::guard('guard_name')->user()
$leadStatus = $this->leadStatusRepository->create($input);
Flash::success('Lead Status saved successfully.');
return redirect(route('lead-statuses.index'));
}
希望这有帮助。