Laravel 5.2 中 session::flash() 不能正常使用的问题

问题描述

之前用的5.2版本flash是可以正常使用,后来使用的新的laravel代码,把之前的代码复制过来之后,flash()不能用了,但是其他的set,put都可以正常使用。不知道是什么地方出了问题。

Route::group([
    'middleware' => 'web',
    'namespace' => 'Front'
], function () {
    //二手区首页
    Route::get('/', 'UsedController@index')
        ->name('used.index');

    //发布订单
    Route::get('used/publish', 'UsedController@publish')
        ->name('used.publish');
    
    Route::post('used/postPublish', 'UsedController@postPublish')
        ->name('used.post_publish');
});

路由文件中是这样写的。

public function postPublish(Request $request)
    {
        \Session::flash('end.message', '球队创建成功');
        \Session::flash('end.level', 'success');
        return redirect()->route('used.index');
    }

控制器中的代码如上。

解决方法

laravel 5.2 在某个版本升级中, 修改了 RouteServiceProvider , 更改了一个方法

public function map(Router $router)
{
    $this->mapWebRoutes($router);

    //
}

protected function mapWebRoutes(Router $router)
{
    $router->group([
        'namespace' => $this->namespace, 'middleware' => 'web',
    ], function ($router) {
        require app_path('Http/webRoutes.php');
    });
}

这是laravel给开发者做的一个示范 , 让我们知道http和api , 以及其它端可以加载不同的route文件来启动 . 这意味着laravel 可以有多个不同的bootstrap , 启动多个不同的kernel . 比如有HttpKernel , 还可以有RPCKernel或其它APIKernel , 每个Kernel 如同现在的Http 文件夹一样 ,拥有独立的路由文件 , 控制器 和中间件 . 这样就可以做到多端访问的资源隔离.

然而这个改动在RouteServiceProviders 里就把 'web' 中间件加载了 , 我从前面的版本过来 , 并不知道有这么一出. 中间件 Illuminate\Session\Middleware\StartSession 被启动了两次 .


参考文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接 必备品 文档:Documentation API:API Reference 视频:Laracasts ...
    layjoy阅读 8,629评论 0 121
  • 必备品文档:DocumentationAPI: API Reference视频:Laracasts速查表:Lara...
    ethanzhang阅读 5,781评论 0 68
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,001评论 19 139
  • 先说几句废话,调和气氛。事情的起由来自客户需求频繁变更,伟大的师傅决定横刀立马的改革使用新的框架(created ...
    wsdadan阅读 3,102评论 0 12
  • 1.创建数据表迁移文件 2.在创建的迁移文件中设置表属性,字段等。 3.创建数据表 4.创建控制器 这条命令会在a...
    _玉石_阅读 3,743评论 0 10