我正在构建具有多个用户角色和 Action 的应用程序。我确实遵循了官方的laravel doc(https://laravel.com/docs/5.5/middleware#middleware-parameters)。
但是,在我的 Controller 的构造函数中(从那里我称上述中间件),我正在使用Auth Facade获取用户详细信息。我知道如何使用Auth Facade,我已经在应用程序中的多个地方实现了它。但是,当我在构造函数中使用它时,它返回null(在登录状态下-我再次检查了该值)。
我是这样实现的,我必须调用两个 Controller (因为只有注册用户才能访问该页面)
public function __construct()
{
$role = Auth::user()->role;
$this->middleware('auth');
$this->middleware('checkRole:$role');
}
PS:我试图将$ role变量初始化为protected,并且在构造函数之外,仍然无法正常工作。任何建议都会有帮助
谢谢你。
最佳答案
这是因为构造函数是在中间件之前创建的,这就是为什么它返回null的原因。
该答案将正确解决您的问题:Can't call Auth::user() on controller's constructor
关于php - laravel 5.5在构造函数中获取用户详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46161126/