gpt4 book ai didi

php - session flash 消息执行两次 Laravel

转载 作者:行者123 更新时间:2023-12-05 03:07:34 24 4
gpt4 key购买 nike

我的 session 闪现消息有问题

我有这样一个简单的逻辑

if(empty($code))
{
return redirect()->back()->with('modal', 'working');
}

在我的 View 文件中,我正在做测试警报

@if(session('modal'))
<script>
alert('working');
</script>
@endif

问题是这个 alert('working'); 被执行了两次。因此,当它重定向回来时,第一次立即执行,第二次在加载文档后执行。

我尝试了各种解决方法,例如删除 session key 、加载准备好用于 javascript 的文档,但没有任何效果。

可能是什么问题?

最佳答案

假设您正在使用 Bootstrap ...

这是我的处理方式:

在您的 View 中创建一个名为:alerts 的新文件夹,并在其中创建一个名为 alerts.blade.php 的文件

粘贴:

@if (Session::has('success'))
<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
{{ Session::get('success') }}
</div>
@elseif (Session::has('error'))
<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
{{ Session::get('error') }}
</div>
@elseif(Session::has('warning'))
<div class="alert alert-warning">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
{{ Session::get('warning') }}
</div>
@endif

在您拥有的每个文件中,您现在可以使用:include('alerts.alerts')

现在在您的 Controller 中,如果您希望标记错误/警告或成功消息,只需使用:

Session::flash('success', 'Success message here')

return redirect()->back();


Session::flash('error', 'Error message here')

return redirect()->back();


Session::flash('warning', 'warning message here')

return redirect()->back();

这样一来,您就不必一直向每个将包含任何类型消息的页面添加 HTML,因为您只需包含一个文件,该文件将在调用时进行标记。

我知道最初的化妆看起来有点冗长,但最终它会为你节省很多时间

关于php - session flash 消息执行两次 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47205016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com