Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5 Laravel共享身份验证::用户()信息_Laravel 5 - Fatal编程技术网

Laravel 5 Laravel共享身份验证::用户()信息

Laravel 5 Laravel共享身份验证::用户()信息,laravel-5,Laravel 5,我制作了一个BaseController来共享用户信息,但这不起作用Auth::user()->id和Auth::user()->email为空 如何存档此文件?最好的方法是什么 class BaseAdminController extends Controller{ public function __construct() { $this->initMenu(); } private function initMenu() {

我制作了一个
BaseController
来共享用户信息,但这不起作用
Auth::user()->id
Auth::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]);
    }
}

您可以使用查看帮助器功能轻松共享内容。也许这会帮助你:

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


这就是一个例子!仅将您想要查看的信息发送到视图中,就像您在示例中所做的那样。但只需传递数组,而不是将其强制转换为对象,等等……

您可以通过中间件执行此操作,因为您无法在控制器的构造函数中访问会话或经过身份验证的用户,因为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]);
    }
}

initMenu()是否在同一个类中?因为你的例子表明它不在BaseAdminController@jeroenF抱歉,现在更正。很乐意帮忙;)
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]);
    }
}