我的会话Flash消息出现问题
我有一个像这样的简单逻辑
if(empty($code))
{
return redirect()->back()->with('modal', 'working');
}
在我的视图文件中,我正在测试
@if(session('modal'))
<script>
alert('working');
</script>
@endif
问题是alert('working');
执行了两次。因此,当它重定向时,一次立即执行,第二次,它在加载文档后执行。
我尝试了各种解决方法,例如删除会话密钥,加载文档准备好javascript,但没有任何作用。
可能是什么问题?
答案 0 :(得分:1)
假设你正在使用bootstrap ...
以下是我的方法:
在你的视图中创建一个名为: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">×</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">×</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">×</span>
</button>
{{ Session::get('warning') }}
</div>
@endif
在您拥有的每个文件中,您现在可以使用:include('alerts.alerts')
现在在您的控制器中,如果您希望标记错误/警告或成功消息,只需使用:
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添加到包含任何类型消息的每个页面,因为您只需包含一个在调用时将标记的文件。
最初的化妆似乎有点长,我知道,但最终它会为你节省很多时间
答案 1 :(得分:0)
您应该像这样使用laravel flash帮助器,
@Override
protected void onPostExecute(Void unused) {
iv1.setImageDrawable(ddd);
}
$request->session()->flash('status', 'Task was successful!');