Ich versuche, mit einer Meldung zur vorherigen Seite umzuleiten, wenn ein schwerwiegender Fehler auftritt.
App::fatal(function($exception)
{
return Redirect::back()->with('msg', 'The Message');
}
In der Ansicht wird versucht, auf die Nachricht mit zuzugreifen
Sessions::get('msg')
Aber nichts wird gerendert, mache ich hier etwas falsch?
s
und fügen Sie sieuse
bei Bedarf hinzu. Abgesehen davon - sollte funktionieren.Antworten:
Versuchen
und in Ihrer Sicht nennen Sie dies
quelle
return Redirect::back()->with('msg', 'The Message');
das nicht, um die "Nachricht" hier zu bekommen?Session::has('msg')
Session::has('msg')
und die 'Nachricht' ist nicht da.withErrors('some error')
- also eine Zeichenfolge anstelle eines Arrays sein.Regler
Klinge:
quelle
return redirect()->back()->with('success', 'your message here');
Ein alternativer Ansatz wäre
Regler
Aussicht
quelle
In Laravel 5.4 hat Folgendes für mich funktioniert:
quelle
withErrors()
Methode in der Antwort sind ein Array mit zwei Elementen :['msg', 'The Message']
. Siehe die API für akzeptable Parameter: laravel.com/api/4.2/Illuminate/Http/…withErrors()
Methode zur Verwendung in Laravel 5.4 ein Array mit einem Element, das einkey => value
Paar ist, wobei der Wert ein Array ist. 5.4 API: laravel.com/api/5.4/Illuminate/Http/…Sie haben einen Fehler (Rechtschreibfehler):
Sollte sein:
Ich denke, jetzt sollte es funktionieren, das tut es für mich.
quelle
Stellen Sie einfach die Flash-Nachricht ein und leiten Sie von Ihrer Controller-Funktion zurück.
Und dann können Sie die Nachricht in der View Blade-Datei erhalten.
quelle
{!! Session::get("msg", '') !!}
sollte reichen.get()
prüft bereits, ob der Schlüssel vorhanden ist und gibt ansonsten den Standardwert zurück.In Laravel 5.5 :
In der Ansicht mit Blade:
quelle
In Laravel 5.8 können Sie Folgendes tun:
und in der Klinge:
quelle
Ich habe aufgehört, dies selbst für Laravel zu schreiben, und zwar zugunsten des Laracasts-Pakets , das alles für Sie erledigt. Es ist sehr einfach zu bedienen und hält Ihren Code sauber. Es gibt sogar einen Laracast , der die Verwendung beschreibt. Alles, was Sie zu tun haben:
Ziehen Sie das Paket durch Composer.
Fügen Sie den Dienstanbieter in app / config / app.php ein.
Fügen Sie dieser Datei unten einen Fassadenalias hinzu:
Ziehen Sie den HTML-Code in die Ansicht:
Rechts neben der Nachricht befindet sich eine Schaltfläche zum Schließen. Dies hängt von jQuery ab. Stellen Sie daher sicher, dass es vor Ihrem Bootstrap hinzugefügt wird.
optionale Änderungen:
Wenn Sie kein Bootstrap verwenden oder das Einschließen der Flash-Nachricht überspringen und den Code selbst schreiben möchten:
Wenn Sie den eingezogenen HTML-Code anzeigen möchten
@include('flash::message')
, finden Sie ihn invendor/laracasts/flash/src/views/message.blade.php
.Wenn Sie die Partials ändern müssen, gehen Sie wie folgt vor:
Die beiden Paketansichten befinden sich jetzt im Verzeichnis "app / views / packages / laracasts / flash /".
quelle
in der Steuerung
Beispielsweise
in Blade-Datei Die Nachricht wird in einer Sitzung nicht in einer Variablen gespeichert.
Beispielsweise
quelle
Für Laravel 5.5+
Regler:
Klinge:
quelle
Ich hatte das gleiche Problem und das hat funktioniert.
Regler
Aussicht
quelle
Für Laravel 5.6. *
Während ich einige der in Laravel 5.6. * Bereitgestellten Antworten ausprobiere, ist klar, dass es einige Verbesserungen gibt, die ich hier veröffentlichen werde, um es denjenigen zu erleichtern, die mit den restlichen Antworten keine Lösung finden konnten.
SCHRITT 1:Gehen Sie zu Ihrer Controller-Datei und fügen Sie diese vor der Klasse hinzu:
SCHRITT 2: Fügen Sie dies hinzu, wo Sie die Umleitung zurückgeben möchten.
SCHRITT 3: Gehen Sie zu Ihrer Blade-Datei und bearbeiten Sie sie wie folgt
Dann teste und danke mir später.
Dies sollte mit Laravel 5.6. * Und möglicherweise 5.7. * Funktionieren
quelle
Für Laravel 3
Nur ein Hinweis auf die Antwort von @giannis christofakis; für alle, die Laravel 3 verwenden, ersetzen
mit:
quelle
Laravel 5.6. *
Regler
Klingenvorlage
Enyoj
quelle
Ich habe diese Nachricht erhalten, als ich versuchte, umzuleiten als:
Wenn der richtige Weg ist:
quelle
Laravel 5.8
Regler
Klinge
quelle