我試圖實現一些自定義Flash消息,並遇到會話數據在重定向後被銷燬的一些問題。重定向後會話數據未保留
這裏是我如何創建我的提示信息:
flash('Your topic has been created.');
這裏的flash()
函數的聲明:
function flash($message, $title = 'Info', $type = 'info')
{
session()->flash('flash', [
'message' => $message,
'title' => $title,
'type' => $type,
]);
}
這裏是如何我檢查會話/顯示Flash的消息,使用SweetAlerts。此代碼包含在我所有Blade模板中擴展的主佈局文件的底部。
@if(Session::has('flash'))
<script>
$(function(){
swal({
title: '{{ Session::get("flash.title") }}',
text : '{{ Session::get("flash.message") }}',
type : '{{ Session::get("flash.type") }}',
timer: 1500,
showConfirmButton: false,
})
});
</script>
@endif
的代碼,如果我稱之爲flash()
功能顯示視圖之前,像這樣上面將工作:
public function show($slug)
{
flash('It works!');
return view('welcome');
}
但是,它不會,如果我把它做一個重定向到另一個頁面之前工作,如下所示:
public function show($slug)
{
flash('It does not work');
return redirect('/');
}
爲什麼會話數據在重定向時丟失?我如何讓它持續存在以便我可以顯示我的Flash消息?
您可以在重定向之前和之後檢查網址嗎?有時候你使用'www.'來登錄域名,並且重定向到沒有'www.'的域名,在這種情況下,你將不會看到會話 –