我创建了一个新的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
答案 0 :(得分:0)
您需要发送带有重定向的消息,如下所示:
return redirect()->to('test')->with('status', 'test');
然后您可以使用会话帮助函数访问它:
session('status');
修改:将Route::get('test')
放入具有中间件“网络”的群组中
详细了解HTTP中间件here
答案 1 :(得分:0)
Laravel 5.2将中间件文档更改为:请记住,Web中间件组由RouteServiceProvider自动应用于您的默认routes.php文件。
这意味着如果你在另一个['中间件' => ' web'],session() - > flash()设置的数据将被执行的Web中间件丢失两次。
这也是有人问为什么网络执行两次的答案。