So möchte ich alle möglichen und unerwarteten Fehler (wie 401, 404, 500) mit nur einer Ansicht abdecken. Ich möchte, dass die gleiche Ansicht auf alle möglichen Fehler angezeigt wird. Ich habe eine Lösung gefunden - den gleichen Code kopieren und einfügen und die Ansichten mit verschiedenen Fehlercodes benennen. Aber das scheint steif und falsch. Gibt es einen besseren Weg, dies zu erreichen?Laravel - Eine Ansicht für alle möglichen Fehler
Antwort
Ein sauberer Weg, um diesen Effekt zu erzielen, ist die Änderung Laravel's exception handler.
Ändern Sie App\Exceptions\Handler
, um jeden Fehler abzufangen und Ihre freigegebene benutzerdefinierte Fehlerseite zurückzugeben.
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $e)
{
if ($e instanceof NotFoundHttpException) {
return response()->view('errors.custom', [], 404);
}
return parent::render($request, $e);
}
Einige individuell gestaltet werden können vollständig erforderlich sein, genau zu treffen, was &, wie Sie Daten auf Ihre freigegebenen benutzerdefinierten Ansicht übergeben wollen.
Übergeben Sie den Fehlercode an Ihre Sicht auf den Handler, und zeigen Sie den Code auf Ihrer Seite an, verwenden Sie einen Schalter, um alle Nachrichten abhängig von dem Fehlercode zu behandeln.
Sie können eine eindeutige Ansicht erstellen (Standard: 404-Fehler), try catch in Ihrem Code verwenden, um andere Fehler zu erfassen und diese Ansicht mit Parametern aufzurufen, damit Sie den 404-Standardfehler in einen anderen Fehler ändern können.
In der Datei App/Exceptions/Handler.php können Sie ändern, was passiert, wenn eine Ausnahme ausgelöst wird. Insbesondere gibt es eine render
-Methode, mit der Sie alle Ausnahmen in einer Anwendung abfangen können.
public function render($request, Exception $e)
{
// Handle your error here. Perhaps you can show a view
// when a condition is met. Anything that isn't caught
// here will be handled by Laravel with the
// parent::render call below
return parent::render($request, $e);
}
Die parent::render($request, $e)
ist, wo Laravel normalerweise zeigen würde, es ist Ausnahme-/oops Seite. Wenn Sie diese Methode überschreiben, können Sie alle Anwendungsfehler abfangen, einschließlich 404, 401 usw.
- 1. Alle möglichen Exit-Codes für cp
- 2. Was sind alle möglichen Werte für SQLException.getSQLState?
- 3. Alle möglichen Wertekombinationen erhalten
- 4. Was sind alle möglichen Schlüssel für database.yml
- 5. Python zählt alle möglichen Kombinationen für eine Tabelle
- 6. Alle möglichen Zeichen für eine Zahl als String darstellt, Integer.java
- 7. alle möglichen Phasen Kombination
- 8. Funktion für alle möglichen Optionen zu finden
- 9. Laravel bedingte Ansicht für https
- 10. Makefile - Build alle möglichen Ziele
- 11. Generieren Sie alle möglichen Ersetzungen
- 12. PHP-Ausgabe alle möglichen Zahlenkombinationen
- 13. Alle möglichen Permutationen aller möglichen Größen in Java
- 14. Liste aller möglichen PHP-Fehler
- 15. iOS-native Möglichkeit, Dateien für alle möglichen Anwendungen freizugeben
- 16. Laravel Ansicht funktioniert nicht
- 17. Erstellen Sie alle möglichen Korrelationsmatrizen für 3 Variablen
- 18. Generieren Sie alle möglichen Permutationen einer Klasse
- 19. Alle möglichen maximalen Matchings eines bipartiten Graphen
- 20. Laravel/Lumen: Ansicht :: share() Alternative?
- 21. Getting R Häufigkeit zählt für alle möglichen Antworten
- 22. JavaScript alle möglichen Zeichen nach Zeichenfolge
- 23. Erhalten Sie alle möglichen Teilstring in PHP
- 24. Nosetests und herauszufinden, alle möglichen Bibliothek Funktionen
- 25. Erhalten Sie alle möglichen verfügbaren Währungen
- 26. verketten alle möglichen Spaltenwerte anderer einzigartiger Spalte
- 27. UK Postleitzahl gibt alle möglichen Adressen
- 28. Regex, um alle möglichen Übereinstimmungen für ein Muster in C#
- 29. Was sind alle möglichen Rückrufparameter für Mungo Dokument # Update?
- 30. Alle möglichen Umfang Optionen in Passport für Facebook und Google