2016-12-28 2 views
1

Wie kann ich in Lumen ungültige Routen (URLs) behandeln?Laravel Lumen - ungültige Route behandeln

Lumens documentation sagt, abort(404); setzen, aber ich bin nicht wo, um dies zu setzen.

Wenn ich es in meiner Route-Datei setzen, gibt es mir diesen Fehler

Fatal error: Call to a member function send() on string in C:\....\vendor\laravel\lumen-framework\src\Application.php on line 408 

Dies ist der Code, wo der Fehler ausgelöst wird:

protected function handleUncaughtException($e) 
{ 
    $handler = $this->make('Illuminate\Contracts\Debug\ExceptionHandler'); 

    if ($e instanceof Error) { 
     $e = new FatalThrowableError($e); 
    } 

    $handler->report($e); 

    if ($this->runningInConsole()) { 
     $handler->renderForConsole(new ConsoleOutput, $e); 
    } else { 
     $handler->render($this->make('request'), $e)->send(); <---line 408 
    } 
} 

Das ist der Stoff in meiner Route-Datei (nur eine Route hinzugefügt):

Ich vermute, dass ich den Abbruchbefehl nicht ordnungsgemäß in der Routendatei hinzufügen.

Im Idealfall, wenn die Route nicht gültig ist, möchte ich es auf /ask URL umleiten.

Jede Hilfe wird geschätzt. Und bitte lassen Sie mich, wenn weitere Informationen oder Code benötigt wird. Ich werde es der Frage hinzufügen.

----- EDIT: -----

Ohne den Abbruch() ich diesen Fehler mit einer ungültigen URL erhalten:

exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' in C:\Empire\LifeLearn\Repos\lifelearn_sofie_application\vendor\laravel\lumen-framework\src\Application.php:1264 

Dies ist Zeile 1264 von der Anwendung .php

Gemäß der Lumen-Dokumentation ist dies der zweite Weg, um einen Fehler zu behandeln, was es zu tun scheint.

Zweitens können Sie manuell eine Instanz von Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException auslösen.

Aber wie kann ich eine 404 Seite anstelle des Fehlers auf der Seite zeigen?

+0

Es wird möglich sein, wenn Sie den Fehler beheben. Zeigen Sie den Code um die fragliche Zeile herum. – bcmcfc

+0

Möchten Sie den Code in der Anwendungsdatei sehen? Posted it in der Frage – fractal5

+0

Sie müssen die falsche Sache auf Ihre Routen passieren.Wie sehen deine Routen aus? – bcmcfc

Antwort

0

Ich habe dies mit Hilfe dieser Links zu arbeiten:

how-do-i-create-a-custom-404-error-page

create-custom-error-pages-in-laravel-5

Vor allem die erste. Bestmomos Antworten haben es geschafft. Der zweite Link ist nützlich, wenn Sie verschiedene Arten von Fehlern behandeln möchten 404, 500 etc.

Ich musste meiner Routendatei nichts hinzufügen. musste nur die app/Exceptions/Handler.php Datei wie in der Antwort beschrieben ändern. Ich werde das hier bald näher erläutern.

Stellen Sie sicher, dass Sie 'symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException;' in Ihrem Handler.php