php - laravel 5.2使用session一直报错Session store not set on request
PHPz
PHPz 2017-04-11 09:47:02
[PHP讨论组]

网上找了好久,都说要给路由配置中间件,我也配置了,Kernel.php我也没动过

被这个问题折腾了好几天了,csrf也没效果,明明都引用了中间件的,我甚至都直接放到全局中间件里面也没用,真是怪了,重新建了个laravel项目也这样

路由配置中间件试过了,版本是最新的,RouteServiceProvider里面也有自动加载web中间件的代码,都没用,这些方法网上都找的到,根本没效果啊。。

PHPz
PHPz

学习是最好的投资!

全部回复(5)
PHP中文网

路由配置上使用web中间件

Route::group(['middleware' => ['web']], function () {
    // your routes here
});

如果在Routes上添加web中间件没有效果的话,你可以添加下面的$middleware 到 Kernel.php里面

protected $middleware = [
        //...
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
];
大家讲道理

升级到Laravel 5.2.27以上。
修改app/Providers/RouteServiceProvider.php 第56行自动加上web中间件:

'namespace' => $this->namespace, 'middleware' => 'web',
PHPz

config/service.php,.env 没配置session?

迷茫

如果你是使用文件session 检查你storage 目录是否有写入权限
使用 database 检查有没有sessions表
使用memcache/redis 有没有启动memcached和redis 服务,已经有没有装相应拓展!

ringa_lee

遇到了同样的问题,session() 可以用 但是$request->session()-put() 这样不行,我这边的解决方法简单粗暴,在/app/Http/Kernel.php 文件中加入如下两行代码:

protected $middleware = [

    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    StartSession::class,
    ShareErrorsFromSession::class,
];

当然,我是use了
use IlluminateSessionMiddlewareStartSession;
use IlluminateViewMiddlewareShareErrorsFromSession;

还有 我是Laravel5.3 目前为止已经解决问题了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号