附加已认证的用户进行创建

时间:2016-07-11 16:50:43

标签: laravel laravel-5

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

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

1 个答案:

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

希望这有帮助。