我有联系表格。提交POST请求后,将转到处理联系表单的控制器(检查请求并通过电子邮件发送数据)。在控制器的底部我有这个:
return back()->with('flash-message', 'Message!');
在视图中,我尝试用
回显消息{{ session('flash-message') }}
这似乎不起作用。消息不在会话中。 可能有什么不对? 我正在使用: Laravel版本5.2.7
答案 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
本文解释了两种解决方法:
在您的kernel.php文件中,您可以将middleware \Illuminate\View\Middleware\ShareErrorsFromSession::class
移回protected $middleware
属性。
您可以将所有Web路由包装在Web中间件组中(请参阅下文)。同时在此处放置处理表单的路径:
Route::group(['middleware' => 'web'], function() {
// Place all your web routes here...
});