如何在控制器中为前端调用Auth :: id()

时间:2017-05-22 15:20:18

标签: php laravel authentication controller vue.js

我试图在控制器中为我的前端调用我的用户的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登录后台。

3 个答案:

答案 0 :(得分:0)

你有没有试过\Auth::id()。 ? 这应该是我认为的。

答案 1 :(得分:0)

如果用户主动登录并且控制器方法包含auth中间件,则这些帮助程序方法将仅检索经过身份验证的用户或id。如果不是,他们只会返回null。

\Auth::id();

auth()->id();

答案 2 :(得分:0)

$user = auth()->user();

然后

$optionElection->user_id = $user->id;