扫码关注官方订阅号
session的启动顺序在 controller的构造函数之后。那么如何将session提前启动呢?
人生最曼妙的风景,竟是内心的淡定与从容!
Route::get('/', function (){
//在这里启动
});
Laravel 的 Session 是在 IlluminateSessionMiddlewareStartSession 这个中间件里启动的啊,如果你配置恰当,何来 「session 在 controller 构造函数之后启动」 一说?
IlluminateSessionMiddlewareStartSession
附上测试:
class HomeController extends Controller { public function __construct() { global $app; dd($app['session']); } }
访问首页的输出:
SessionManager {#177 ▼ #app: Application {#3 ▶} #customCreators: [] #drivers: array:1 [▶] }
用中间件来实现你的需求
因为在5.2之后,构造函数在所有的middleware之前执行。所有构造函数中访问不到session
public function __construct() { $this->middleware(function ($request, $next) { //这里访问 session 变量和被认证的用户实例 return $next($request); }); }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
Route::get('/', function (){
});
Laravel 的 Session 是在
IlluminateSessionMiddlewareStartSession这个中间件里启动的啊,如果你配置恰当,何来 「session 在 controller 构造函数之后启动」 一说?附上测试:
访问首页的输出:
用中间件来实现你的需求
因为在5.2之后,构造函数在所有的middleware之前执行。所有构造函数中访问不到session