会话flash不工作,put工作[L5.2]


Session flash not working, put does [L5.2]

非常基本的事情正在进行。使用Session Flash消息来显示任何成功/错误消息。

所有路由都设置在我的'middleware' => 'web'组中。

现在是我的问题。->flash()不工作,而->put()工作。

控制器:

$request->session()->flash('alert-success', 'My flash message');

刀片:

@foreach (['danger', 'warning', 'success', 'info'] as $msg)
    @if(Session::has('alert-' . $msg))
        <p class="alert alert-{{ $msg }}">{{ Session::get('alert-' . $msg) }} <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
        </p>
    @endif
@endforeach

Laravel 5文档中所述的return redirect('routeHere')->with('alert-success', 'My flash message'); 也不起作用。

编辑

Laravel 5.2会话flash即使使用web中间件复制也无法工作。使用['middlewareGroups' => 'web']而不是['middleware' => 'web']确实解决了问题,但假设这不是解决问题的方法。

出于好奇四处搜索后,我注意到laravel version >= 5.2.27有一个有趣的更新,默认情况下,该更新将web中间件组应用于routes.php中定义的所有路由。

现在,这让我想到,通过声明中间件['middleware' => 'web'],将导致代码被调用两次,从而清除非持久性闪存消息。

基于我的假设的解决方案是简单地不使用:

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

这是我找到更新信息的地方:)Laravel 5.2 Auth不工作

尝试从routes.php文件中删除laravel 5.2中的"web"中间件。这种方式有助于我