我尝试将当前登录的用户附加到此请求,以便我可以将其保存在数据库中。有人能指出我正确的方向吗?
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'));
}
答案 0 :(得分:1)
因此,您可以使用Auth
Facade获取当前登录用户的信息。
对于Laravel 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'));
}
希望这有帮助。