【问题标题】:Laravel Flash Data Persisting indefinitelyLaravel Flash 数据无限期保留
【发布时间】:2016-12-13 23:16:08
【问题描述】:

我正在使用 flashdata 显示表单提交的响应,但它一直存在。

例如,当一个表单被验证并提交成功时,显示成功消息,无论我刷新页面多少次或转到其他页面,它仍然显示成功消息。

我的重定向(验证后)如下:

// Redirect back with success message
return redirect()->back()
->with('form_' . $form->identifier . '_response', json_encode([
    'status' => 'success'
]));

在视图中它检查如下:

@if(session('form_'.$form->identifier.'_response'))

        @if(json_decode(session('form_'.$form->identifier.'_response'),true)['status'] == 'success')

            <div class="alert alert-success">Form has been submitted, thank you!</div>

        @endif
@endif

但它在第一次提交后一直显示成功 div。有谁知道在哪里寻找问题?谢谢!

【问题讨论】:

  • 如果我在发生错误时执行 return redirect()-&gt;back()-&gt;withInput(),也会发生同样的情况 - 无论我刷新和导航页面多少次,输入都处于会话状态。

标签: php laravel session


【解决方案1】:

我发现这是关于在其中一个控制器中不包含 web 中间件,愚蠢的错误。

表单处理程序控制器包含web 中间件,因此它会设置会话,但显示表单的控制器没有该中间件,因此它不会从会话中删除闪存数据。

【讨论】:

    猜你喜欢
    • 2018-03-18
    • 2019-05-20
    • 2015-12-28
    • 2015-12-25
    • 2022-11-10
    • 2021-05-31
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    相关资源
    最近更新 更多