Session-Daten bleiben nach der Umleitung nicht erhalten
Ich versuche, einige benutzerdefinierte Flash-Nachrichten zu implementieren, und es treten Probleme mit den Sitzungsdaten auf, die nach einer Umleitung zerstört werden.
So erstelle ich meine Flash-Nachrichten:
flash('Your topic has been created.');
Hier ist die Erklärung desflash()
Funktion:
function flash($message, $title = 'Info', $type = 'info')
{
session()->flash('flash', [
'message' => $message,
'title' => $title,
'type' => $type,
]);
}
Und hier ist, wie ich die Sitzung überprüfe / die Flash-Nachrichten mit SweetAlerts anzeige. Dieser Code befindet sich unten in der Hauptlayoutdatei, die ich in allen meinen Blade-Vorlagen erweitere.
@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
Der obige Code funktioniert, wenn ich das @ anruflash()
-Funktion vor dem Anzeigen einer Ansicht, wie folgt:
public function show($slug)
{
flash('It works!');
return view('welcome');
}
Es funktioniert jedoch nicht, wenn ich es vor einer Weiterleitung zu einer anderen Seite aufrufe:
public function show($slug)
{
flash('It does not work');
return redirect('/');
}
Warum gehen die Sitzungsdaten bei der Umleitung verloren? Wie kann ich dafür sorgen, dass die Flash-Nachricht angezeigt wird?