2015-04-06 8 views
12
/** Redirect 404's to home 
*****************************************/ 
App::missing(function($exception) 
{ 
    // return Response::view('errors.missing', array(), 404); 
    return Redirect::to('/'); 
}); 

Ich habe diesen Code in meiner Datei routes.php. Ich frage mich, wie man zurück zur Homepage umleitet, wenn es einen Fehler 404 gibt. Ist das möglich?Umleiten zur Startseite, wenn Route in Laravel nicht existiert 5

Antwort

48

Dafür müssen Sie einige Zeilen Code zu tun, fügen Methode in app/Ausnahmen/handler.php-Datei zu erzeugen, die wie folgt aussieht: es für die Reinigung wollen

public function render($request, Exception $e) 
    { 
     if($this->isHttpException($e)) 
     { 
      switch ($e->getStatusCode()) 
       { 
       // not found 
       case 404: 
       return redirect()->guest('home'); 
       break; 

       // internal error 
       case '500': 
       return redirect()->guest('home'); 
       break; 

       default: 
        return $this->renderHttpException($e); 
       break; 
      } 
     } 
     else 
     { 
       return parent::render($request, $e); 
     } 
    } 
+1

Es funktioniert! Es ist der richtige Weg, um mit der Umleitung zur Startseite umzugehen, wenn die Route nicht in Laravel 5 existiert. –

+0

perfekte Lösung, Danke. –

+0

Perfekte Lösung! –

1

ich nur einen Vorschlag hinzufügen ein bisschen mehr. Ich möchte die angenommene Antwort gutschreiben, um mich zu beginnen. Meiner Meinung nach jedoch, da jede Aktion in dieser Funktion etwas zurückgibt, erzeugen die switch- und else-Anweisung etwas Aufblähung. Um es nur ein bisschen zu säubern, würde ich Folgendes tun.

public function render($request, Exception $e) 
{ 
    if($this->isHttpException($e)) 
    { 
     if($e->getStatusCode == 404) 
      return redirect()->guest('home'); 

     if($e->getStatusCode == 500) 
      return redirect()->guest('home'); 
    } 

    return parent::render($request, $e); 
} 
+0

'getStatusCode()' :) – senty

Verwandte Themen