Laravel份额验证::用户()信息(Laravel share Auth::User() inf

2019-09-28 22:02发布

我做了一个BaseController共享用户信息,但不起作用。 Auth::user()->idAuth::user()->email是空的。

如何归档呢? 请告诉我最好的方法呢?

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

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

Answer 1:

您可以通过中间件做到这一点,因为你不能访问控制器的构造函数中的会话或身份验证的用户,因为middlware没有运行过程中出现尚未:

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]);
    }
}


Answer 2:

您可以使用视图助手功能可轻松共享的东西。 也许这将帮助你:

view()->share('userinfo', [...data to pass in an array...]);

要么

view()->share('user', Auth::user());

这是一个例子! 只有PAS的信息要视图,就像你在你的例子一样。 但是,仅仅通过数组,而不是浇铸成对象,等等....



文章来源: Laravel share Auth::User() info
标签: laravel-5