【问题标题】:Laravel - Browser displays message again when I press back buttonLaravel - 当我按下后退按钮时浏览器再次显示消息
【发布时间】:2017-10-06 00:06:22
【问题描述】:

每次我在我的应用程序中创建一个新类别时,它都会显示一条成功消息。这是我的代码:

return redirect('dashboard/categorias')->with('message', 'Categoria criada com sucesso!');

我知道这没什么大不了的,但是当我创建一个新类别然后我转到另一个页面并按浏览器上的返回按钮时,它会再次显示消息。

这是我的看法:

@if(session('message'))
        <script>Materialize.toast('{{session('message')}}', 4000)</script>
        {{ Session::flush() }}

@endif

应该怎么做才能不再显示此消息?

【问题讨论】:

  • 您是否尝试过闪烁会话消息? laravel.com/docs/5.4/session#flash-data
  • 后退浏览器不会像那样删除会话。试试吧。首先在看到成功消息后刷新页面然后单击返回按钮,其次在看到成功消息后将页面的 url 直接放在浏览器中,从那里重定向到成功页面
  • @linktoahref 是的,我也试过了,还是不行。
  • @Exprator 对不起,这样做有什么意义?我想防止使用我的应用程序的用户在按下后退按钮时看到两次此类消息。不过还是谢谢。
  • 我只是问你能不能看到它。如果不是,则意味着会话不会被破坏。你需要把这 4000 减少到 1000

标签: php laravel session materialize


【解决方案1】:

你应该在 laravel 中进行会话闪烁,一旦会话数据被读取,它就不再可用:

$request->session()->flash('message', 'Categoria criada com sucesso!');

或者

Session::flash('message', 'Categoria criada com sucesso!');

更新

您的问题似乎是页面缓存, 使用以下标题:

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

在发送您的回复之前。

你甚至可以创建一个不使用缓存的中间件,在这里查看答案:

https://stackoverflow.com/a/42057397/2952213

【讨论】:

  • 我都试过了,都不行。当我按下返回按钮(浏览器上的左箭头)时,它会再次显示消息。
  • @GabrielFiel 请检查更新后的答案,这将有助于解决您的问题..
  • 对不起,我想在哪里添加这段代码?
  • @GabrielFiel 您可以简单地在您的控制器功能中添加薄,您可以在其中闪烁会话或显示页面,如下所示:public function someFunction() { header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); return redirect('dashboard/categorias')-&gt;with('message', 'Categoria criada com sucesso!'); }
  • 它不起作用,我添加了存储和更新方法。 :(
【解决方案2】:

我认为你需要像这样更新你的代码:

@if(Session::has('message'))
        <script>Materialize.toast({{ Session::get('message') }}, 4000)</script>
        {{ Session::flush() }}

@endif

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2020-05-02
    • 2013-03-02
    相关资源
    最近更新 更多