Laravel用闪存数据返回

时间:2016-01-14 11:55:02

标签: php laravel-5 laravel-5.2

我有联系表格。提交POST请求后,将转到处理联系表单的控制器(检查请求并通过电子邮件发送数据)。在控制器的底部我有这个:

return back()->with('flash-message', 'Message!');

在视图中,我尝试用

回显消息
{{ session('flash-message') }}

这似乎不起作用。消息不在会话中。 可能有什么不对? 我正在使用: Laravel版本5.2.7

3 个答案:

答案 0 :(得分:3)

请用这种方式获取Session变量..

return  redirect()->back()->with('flash-message','message');  

并在View ..

 {{Session::get('flash-message')}}

答案 1 :(得分:0)

你可以这样做。在控制器中:

Session::flash('message','Empty input not accepted');
return back();

在使用此会话的视图文件中,您可以执行与上述相同的操作:

{{ \Session::get($message) }}

希望这可以帮助你......

答案 2 :(得分:0)

我明白了。它与Laravel 5.2更新有关。负责使所有视图可用的Flash数据的中间件不再在正常路由中使用。它已从全球中间件转移到Web中间件组。这篇文章解释了这个问题以及如何解决它。

Laravel 5.2 $errors not appearing in Blade

本文解释了两种解决方法:

  1. 在您的kernel.php文件中,您可以将middleware \Illuminate\View\Middleware\ShareErrorsFromSession::class移回protected $middleware属性。

  2. 您可以将所有Web路由包装在Web中间件组中(请参阅下文)。同时在此处放置处理表单的路径:

  3. Route::group(['middleware' => 'web'], function() { // Place all your web routes here... });