【问题标题】:how to clear session messages in laravel after redirect to other route重定向到其他路由后如何清除laravel中的会话消息
【发布时间】:2020-08-16 05:58:50
【问题描述】:

我在 laravel 中使用 session 来显示消息。我的控制器代码是:

return redirect()->route('abc')->with('success','data save successfully');

对于显示消息,我使用以下代码:

@if ($message = Session::get('success'))
    <div class="alert alert-success alert-block">
        <button type="button" class="close" data-dismiss="alert">×</button> 
            <strong>{{ $message }}</strong>
    </div>
@end if

在我重定向到另一条路线并再次返回上一页后,再次显示消息。 如果我使用的是session::forget('success'),则不会显示会话消息。

【问题讨论】:

  • 这是浏览器的正常操作。当您返回最后一页时,浏览器会显示最后一个状态并且不会加载新状态。
  • @elyas.m 那么当我回到最后一页时如何消失我的消息?有什么解决办法吗?
  • 我认为这不是错误。但是您可以在刀片中提供后退按钮作为上一页的链接,或者通过 javascript 强制重新加载上一页。但我不知道这些方法是标准的还是有效的!

标签: laravel


【解决方案1】:

尝试在刀片中使用Session::pull('success')Session::has('success') 而不是get()

您可以查看更多关于会话Here

【讨论】:

    【解决方案2】:

    当您按下返回按钮时,浏览器会显示该页面的缓存版本。在这种情况下,您需要重新加载页面。

    如果用户按下返回按钮,请使用以下脚本强制重新加载页面。

    if(performance.navigation.type == 2){
        location.reload();
    }
    

    注意:无需清除会话。

    【讨论】:

      猜你喜欢
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 2017-01-14
      • 1970-01-01
      • 2021-11-07
      • 2021-01-22
      相关资源
      最近更新 更多