Laravel5.3+以后__construct函数已无法获取Auth::user()信息了。
故想在__construct中共享Auth::user()的信息已变得不可行,例如下图所示
因Laravel框架加载流程 middleware执行总在__construct函数之后运行,故弄个middleware来解决该问题
1、创建一个middleware
class CheckAuth { public function handle($request, Closure $next) { view()->share('user',Auth::user()); //将数据共享到视图上 return $next($request); } }
2、在Kernel中注册中间件
protected $routeMiddleware = [ 'checkAuth' => \App\Http\Middleware\CheckAuth::class,//定义的中间键 ];
3、在构造函数中使用
$this->middleware('checkAuth');
本帖已被设为精华帖!