Laravel分享Auth :: User()信息 [英] Laravel share Auth::User() info

查看:696
本文介绍了Laravel分享Auth :: User()信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个BaseController来共享用户信息,但这不起作用. Auth::user()->idAuth::user()->email为空.

I made a BaseController to share user information but that doesn't work. Auth::user()->id and Auth::user()->email are empty.

我该如何存档?最好的方法是什么?

How can I archive this? Whats the best approach?

class BaseAdminController extends Controller{
    public function __construct()
    {
        $this->initMenu();
    }

    private function initMenu()
    {
       View::share('userinfo', (object) ['id' => Auth::User()->id, 'email' => Auth::User()->email]);
    }
}

推荐答案

您可以通过中间件来完成此操作,因为由于中间件尚未运行,因此您无法在控制器的构造函数中访问会话或经过身份验证的用户:

You can do it via middleware because you can't access the session or authenticated user in the controller's constructor, since the middlware isn't runnig yet:

class BaseAdminController extends Controller{
    public function __construct()
    {
        $this->middleware(function ($request, $next) {

            $this->initMenu();

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

    private function initMenu()
    {
       View::share('userinfo', (object) ['id' => Auth::User()->id, 'email' => Auth::User()->email]);
    }
}

这篇关于Laravel分享Auth :: User()信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆