首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel带着闪存数据返回

Laravel带着闪存数据返回
EN

Stack Overflow用户
提问于 2016-01-14 19:55:02
回答 3查看 7.4K关注 0票数 1

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

代码语言:javascript
复制
return back()->with('flash-message', 'Message!');

在视图中,我尝试用以下方式回应该消息

代码语言:javascript
复制
{{ session('flash-message') }}

这似乎不管用。消息不在会话中。会出什么问题呢?Im使用: Laravel版本5.2.7

EN

回答 3

Stack Overflow用户

发布于 2016-01-14 19:59:01

请用这种方法获取会话变量..

代码语言:javascript
复制
return  redirect()->back()->with('flash-message','message');  

在视图中..

代码语言:javascript
复制
 {{Session::get('flash-message')}}
票数 4
EN

Stack Overflow用户

发布于 2016-01-15 20:50:27

我想通了。这与Laravel 5.2更新有关。负责将闪存数据提供给所有视图的中间件不再在正常的路径中使用。它从全局中间件移到了web中间件组。这篇文章解释了这个问题以及如何解决它。

Laravel 5.2 $errors not appearing in Blade

这篇文章解释了两种修复方法:

  1. 在您的kernel.php文件中,您可以将middleware \Illuminate\View\Middleware\ShareErrorsFromSession::class移回protected $middleware属性。
  2. 您可以将所有web路由包装在web中间件组中(见下文)。还要将处理表单的路由放在此处:

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

票数 1
EN

Stack Overflow用户

发布于 2016-01-15 19:59:42

您可以对控制器执行this.In操作:

代码语言:javascript
复制
Session::flash('message','Empty input not accepted');
return back();

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

代码语言:javascript
复制
{{ \Session::get($message) }}

希望这对你有帮助...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34789020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档