Laravel分享Auth :: User()信息 [英] Laravel share Auth::User() info
本文介绍了Laravel分享Auth :: User()信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建了一个BaseController
来共享用户信息,但这不起作用. Auth::user()->id
和Auth::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屋!
查看全文