laravel_construct_get_auth_user

应该不少同学都遇到这个问题了:5.3 起,由于框架运行流程的修改,你无法在控制器的构造函数里获取登录用户,那么我们怎么办呢?以下是几个方法:

  1. 不再从构造函数取用户

我们可以从 request 中获取登录用户:request()->user()

  1. 或者在控制器方法里我们使用 Auth::user()

除了上面的折中的办法,我们一定要在构造函数搞定的话那么请看这里:

1
2
3
4
5
6
7
8
9
10
protected $user;

public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = $request->user();

return $next($request);
});
}

这样你就可以在其它方法里使用 $this->user 来访问当前登录用户了。