附加经过身份验证的用户进行创建



我正在尝试将当前登录的用户附加到此请求中,以便我可以将其保存在数据库中。请问有人可以指出我正确的方向吗?

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'));
}

希望这有帮助。

最新更新