发布网友 发布时间:2022-04-06 06:38
共2个回答
热心网友 时间:2022-04-06 08:07
通常 这种问题都是 未将路由置于 web 中间件下
protected $middlewareGroups = [
//中间件web
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
//看到这里了吗!StartSession!!!!要把路由放在这个中间件了才会启动Session!!
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
],
];
Kernel.php
----------
两种路由中间件写法各人喜好!
Route::get('/', function () {
//路由放在这里
})->middleware('web');
Route::group(['middleware' => ['web']], function () {
//路由放在这里
});
routes.ph
下面开始说我的解决办法!
因为laravel框架原因,session写入是在程序执行完毕后开始保存的,虽然在同一个方法成功调用了,但是跨方法就获取不到了!
如果写入session的程序中执行了die();exit();会导致session无法保存成功!换成return解决!
热心网友 时间:2022-04-06 09:25
1.分别用Session::put和get, 2.在本地正常,在服务器上就获取不到值,但是存的有。也有$request->session()->get或者put也试过,出现同样的问题。 3.中间件里面也添加了相应的startsession的; 代码如下: $before_time = Session::get($data