我有一个使用Laravel构建的管理工具,用户可以在其中对单个记录执行某些操作。
构建代码的方式我正在对URL执行帖子,执行必要的代码,更新数据库,然后使用会话消息重定向回来。
控制器代码:
return Redirect::back()->with("msg_success", "SMS has been sent!");
现在,从重定向呈现的页面在顶部有一个检查,以显示会话消息(如果存在)。
查看代码:
@if (Session::has('msg_success'))
<div class="col-lg-10">
<div role="alert" class="alert alert-success alert-dismissible fade in">
<button aria-label="Close" data-dismiss="alert" class="close" type="button"><span aria-hidden="true">×</span></button>
<strong>Success! </strong>{{ Session::get('msg_success') }}
</div>
</div>
<div class="clearfix"></div>
@endif
出于某种原因,有时会显示消息,有时则不显示消息。我不能为我的生活找出原因。可能是中间件正在拦截请求然后执行另一个请求而它正在被销毁?我没有看到任何看起来会导致这种情况的东西。
任何想法都会有所帮助。我想在重定向时使用URL参数,如
return Redirect::to('explicitURL?success=whateverthesuccesmessageis')
但我不愿意这样做,因为我的行动是在不同的网址之间共享的。
答案 0 :(得分:2)
在控制器中添加以下内容:
Session::flash('msg_success', 'SMS has been sent!')
return Redirect::back();
在查看:
中@if (Session::has('msg_success'))
<div class="col-lg-10">
<div role="alert" class="alert alert-success alert-dismissible fade in">
<button aria-label="Close" data-dismiss="alert" class="close" type="button"><span aria-hidden="true">×</span></button>
<strong>Success! </strong>{{ Session::get('msg_success') }}
</div>
</div>
<div class="clearfix"></div>
@endif