Heim  >  Artikel  >  PHP-Framework  >  Wie man in Laravel auf 404 springt

Wie man in Laravel auf 404 springt

PHPz
PHPzOriginal
2023-04-23 09:10:261121Durchsuche

Laravel ist ein beliebtes PHP-Entwicklungsframework, das die Erstellung effizienter Webanwendungen erleichtert. Beim Erstellen Ihrer Anwendung können viele HTTP-Fehler wie 404-Fehler auftreten. In diesem Artikel geht es darum, wie Sie den Datenverkehr in Ihrer Laravel-Anwendung auf eine benutzerdefinierte 404-Fehlerseite umleiten.

Laravel bietet standardmäßig eine einfache 404-Fehlerseite, die nur eine einfache Meldung enthält: „Nicht gefunden“. Während dies für einfache Websites ausreicht, können Sie die 404-Fehlerseite anpassen, wenn Ihre Anwendung professionellere und personalisiertere Inhalte benötigt.

Es gibt zwei Möglichkeiten, die 404-Fehlerseite von Laravel anzupassen: mit Lumen und mit Laravel. In diesem Kapitel erklären wir, wie Sie mit Laravel eine 404-Fehlerseite anpassen.

In Laravel kann jeder HTTP-Fehler, einschließlich 404-Fehler, durch Handler behoben werden. Aus diesem Grund müssen Sie einen benutzerdefinierten Fehlerhandler in Ihrer Laravel-Anwendung registrieren, bevor Sie die 404-Fehlerseite ändern.

Der erste Schritt besteht darin, die Datei AppExceptionsHandler.php zu öffnen und die Render-Methode zu finden. Dies ist der Kerncode der Aufgabe, der für das Rendern der angegebenen Ausnahme verantwortlich ist. Standardmäßig verwendet Laravel 404-Ansichtsdateien, um 404-Fehler darzustellen. Wir können diese Methode also überschreiben und Code darin schreiben, um eine benutzerdefinierte 404-Seite zu rendern.

Hier ist ein Beispielcode zum Überschreiben der Render-Methode, um den 404-Fehler zu behandeln und ihn auf eine benutzerdefinierte Seite umzuleiten:

public function render($request, Exception $exception)
{
    if ($exception instanceof ModelNotFoundException &&
        $request->wantsJson())
    {
        return response()->json([
            'error' => 'Resource not found'
        ], 404);
    }

    if ($exception instanceof NotFoundHttpException) {
        return response()->view('errors.404', [], 404);
    }

    return parent::render($request, $exception);
}

In diesem Code haben wir zunächst einen Fall hinzugefügt, bei dem, wenn die angeforderte Ressource kein Modell ist, Selbstdefinitionen zurückgegeben werden eine Fehlermeldung im JSON-Format. Anschließend fügen wir eine weitere Bedingung hinzu, bei der wir bei Auftreten eines NotFoundHttpException-Fehlers zu einer benutzerdefinierten 404-Ansichtsdatei umleiten.

Es ist wichtig, sich daran zu erinnern, dass wir benutzerdefinierte 404-Ansichtsdateien im Verzeichnis resources/views/errors erstellen müssen, damit Laravel die benutzerdefinierte Seite korrekt rendern kann. Wenn ein Ausnahmehandler in Ihrem Code einen 404-Fehler erkennt, wird er zum Rendern auf diese Datei umgeleitet.

Zusätzlich zum Anpassen der 404-Seite können Sie auch andere HTTP-Fehlerseiten anpassen, z. B. 403-, 500- oder 503-Seiten. Verwenden Sie einfach denselben Ansatz, ändern Sie jedoch die Bedingungen im Ausnahmebehandler entsprechend.

Zusammenfassung

Bei der Entwicklung von Laravel-Anwendungen ist der Umgang mit häufigen HTTP-Fehlern wie 404-Fehlern von entscheidender Bedeutung. In diesem Artikel haben wir gelernt, wie man 404-Fehlerseiten mit Laravel anpasst, einschließlich des Schreibens benutzerdefinierter Ausnahmehandler und Ansichtsdateien. Durch die Anpassung Ihrer 404-Fehlerseite können Sie das Benutzererlebnis ganz einfach optimieren und die Benutzerfreundlichkeit Ihrer Anwendung verbessern.

Das obige ist der detaillierte Inhalt vonWie man in Laravel auf 404 springt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn