Laravel 5.2.29 session :: flash立即丢失

时间:2016-04-12 07:43:08

标签: php laravel session flash-message

我创建了一个新的laravel项目,并且laravel flash似乎无法正常工作。当我回到路线时,闪光灯消失了。我有控制器方法,除了闪光之外绝对没有任何东西,然后返回路线。

喜欢这样

public function activateContract(Request $request ){
    return redirect()->to('test')->with('status', 'test');
}

我的路线档案

Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/', function(){
    return redirect()->intended(route('contract.index'));
});

Route::group(['middleware' => 'auth'], function () {
    Route::group(['prefix' => 'contract'], function(){
        Route::get('', ['as' =>  'contract.index' , 'uses' => 'User\ContractController@index']);
        Route::post('', ['as' =>  'contract.index' , 'uses' => 'User\ContractController@activateContract']);
        Route::get('mijn', ['as' =>  'user.contract.index' , 'uses' => 'User\ContractController@userContracts']);
    });

});


Route::get('test', function(){
    dd(session('status'));
});
c});

这是测试路线中模具转储的输出魔法魔法丢失了flash消息。

null

2 个答案:

答案 0 :(得分:0)

您需要发送带有重定向的消息,如下所示:

return redirect()->to('test')->with('status', 'test');

然后您可以使用会话帮助函数访问它:

session('status');

docs

修改:将Route::get('test')放入具有中间件“网络”的群组中 详细了解HTTP中间件here

答案 1 :(得分:0)

Laravel 5.2将中间件文档更改为:请记住,Web中间件组由RouteServiceProvider自动应用于您的默认routes.php文件。

这意味着如果你在另一个['中间件' => ' web'],session() - > flash()设置的数据将被执行的Web中间件丢失两次。

这也是有人问为什么网络执行两次的答案。

Laravel 5.2 : Web middleware is applied twice