我做了一个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]);
}
}
您可以通过中间件做到这一点,因为你不能访问控制器的构造函数中的会话或身份验证的用户,因为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]);
}
}
您可以使用视图助手功能可轻松共享的东西。 也许这将帮助你:
view()->share('userinfo', [...data to pass in an array...]);
要么
view()->share('user', Auth::user());
这是一个例子! 只有PAS的信息要视图,就像你在你的例子一样。 但是,仅仅通过数组,而不是浇铸成对象,等等....