php - laravel 5.2使用session一直报错Session store not set on request

 梦亦碎i 发布于 2022-11-15 07:09

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

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

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

5 个回答
  • 遇到了同样的问题,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 目前为止已经解决问题了

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

    2022-11-15 07:59 回答
  • config/service.php,.env 没配置session?

    2022-11-15 07:59 回答
  • 升级到Laravel 5.2.27以上。
    修改app/Providers/RouteServiceProvider.php 第56行自动加上web中间件:

    'namespace' => $this->namespace, 'middleware' => 'web',
    2022-11-15 07:59 回答
  • 路由配置上使用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,
    ];
    2022-11-15 07:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有