php - laravel 5.5在构造函数中获取用户详细信息

标签 php laravel laravel-5.5

我正在构建具有多个用户角色和 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/

相关文章:

PHP:在结果中使用 scandir bu 排除 .././

php - 没有按钮的自动提交选择框

未找到 Laravel 护照迁移

php - Laravel:如何通过键 ID 获取单个数据透视行

laravel - 图片有绝对路径 - 如何在 Laravel Mix 中使用子目录 URL

php - Laravel eloquent updateOrCreate(), 只在创建时才做某事?

Laravel 5.5 Redis 问题 - 调用未定义的方法 Illuminate\Support\Facades\Redis::connect()

php - header ('Access-Control-Allow-Origin: *' );不允许 CORS 请求

php - Laravel 5.5 登录和注册页面显示 :The page has expired due to inactivity. [TokenMismatchException]

php - 奇怪的意外 '$dbname' (T_VARIABLE)