带有会话消息的Laravel重定向并不总是坚持到我的请求


Laravel redirect with session message does not always persist to my request

我有一个用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')

但我不想这样做,因为我的操作在不同的 URL 之间共享。

控制器中添加以下内容:

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