laravel session:get获取不到数据怎么办

发布网友 发布时间: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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com