2014-11-06 12 views

risposta

9

percorsi non definiti fuochi eccezione Symfony\Component\HttpKernel\Exception\NotFoundHttpException quale è possibile gestire in app/start/global.php utilizzando il metodo App :: errore() in questo modo:

/** 
* 404 Errors 
*/ 
App::error(function(\Symfony\Component\HttpKernel\Exception\NotFoundHttpException $exception, $code) 
{ 
    // handle the exception and show view or redirect to a diff route 
    return View::make('errors.404'); 
}); 
+1

Tecnicamente non mi piacerebbe reindirizzare a una rotta, basta visualizzare una pagina 404 quando si raggiunge una rotta 404. – bgallagh3r

+1

Sì Questo è quello che intendo fare, senza il reindirizzamento, basta mostrare la pagina 404 e il tuo è quello giusto, grazie! – dulan

6

Il metodo consigliato per la gestione degli errori può essere trovato nella documentazione laravel:

http://laravel.com/docs/4.2/errors#handling-404-errors

utilizzare la funzione App :: mancante() nel file di avvio/global.php nel seguente modo:

App::missing(function($exception) 
{ 
    return Response::view('errors.missing', array(), 404); 
}); 
4

ho aggiornato il mio laravel 4 codebase a laravel 5, per chiunque abbia a cuore:

App::missing(function($exception) {...}); 

non è più disponibile in laravel 5, al fine di restituire la vista 404 per tutti i percorsi inesistenti , provare a mettere quanto segue in app/HTTP/Kernel.php:

public function handle($request) { 
    try { 
     return parent::handle($request); 
    } 
    catch (Exception $e) { 
     echo \View::make('frontend_pages.page_404'); 
     exit; 
     // throw $e; 
    } 
} 
6

secondo il funzionario documentation

si può semplicemente aggiungere un file in: re fonti/viste/errori/ chiamato 404.blade.php con le informazioni che si desidera visualizzare su un errore 404.

+0

Questa documentazione è per Laravel 5, ma sì hai ragione e di recente ho aggiornato il mio progetto basato su Laravel 4.2 su Laravel 5. Ora cosa succede se voglio avere 2 404 pagine, una per i dispositivi mobili e l'altra per i browser desktop ? – dulan

17

In Laravel 5.2. Non fare nulla solo creare un nome di file 404.blade.php nella cartella errori, rileverà automaticamente l'eccezione 404.

+2

Questa dovrebbe essere la risposta accettata – exussum

+0

Questo è il modo giusto di farlo – codiiv