Dans Laravel 4
je pouvais simplement appeler
App::abort(404)
Y a-t-il un équivalent dans Laravel 5
?
Il semble y avoir des informations étonnamment limitées à ce sujet au moment de la rédaction du présent document. J'ai trouvé des discussions sur la façon de attraper NotFoundHttpExceptions mais ce n'est pas ce que je veux, car la structure d'URL est déjà traitée par mes routes. php fichier. Pour donner un peu plus d'informations, voici une version simplifiée de ce que j'essaie de faire:
Routes.php:
Route::get('/info/{page}', array('as' => 'info', 'uses' => 'Primary@infoPage'));
Primary.php (contrôleur)
public function infoPage($page){
$pageData = DB::table('pages')->where('url_title', $page)->first();
if(!empty($pageData)){
// great, there's a corresponding row in the database for this page, go ahead and do stuff...
}else {
// This page doesn't exist, please abort with a 404 error... but how?
}
}
Il suffit de regarder le Documentation officielle .
Certaines exceptions décrivent les codes d'erreur HTTP du serveur. Par exemple, cela peut être une erreur "page non trouvée" (404), une "erreur non autorisée" (401) ou même une erreur 500 générée par le développeur. Afin de renvoyer une telle réponse, utilisez ce qui suit:
abort(404);
Facultativement, vous pouvez fournir une réponse:
abort(403, 'Unauthorized action.');
Cette méthode peut être utilisée à tout moment pendant le cycle de vie de la demande.
Pour renvoyer une vue personnalisée pour toutes les erreurs 404, créez un resources/views/errors/404.blade.php
fichier. Cette vue sera diffusée sur toutes les 404 erreurs générées par votre application.
Semble que cette fonction a été supprimée et sera bientôt remplacée comme écrit ici . Une "solution de contournement" peut créer une réponse 404.
Pour la plupart des routes et des actions du contrôleur, vous retournerez un Illuminate\Http\Response
instance ou une vue. Le renvoi d'une instance complète de Response
vous permet de personnaliser le code d'état HTTP et les en-têtes de la réponse. Une instance Response
hérite de Symfony\Component\HttpFoundation\Response
classe, fournissant une variété de méthodes pour créer des réponses HTTP:
use Illuminate\Http\Response;
return (new Response($content, $status))
->header('Content-Type', $value);
Pour plus de commodité, vous pouvez également utiliser l'aide à la réponse:
return response($content, $status)
->header('Content-Type', $value);
Remarque : Pour une liste complète des méthodes de réponse disponibles, consultez ses documentation API et documentation Symfony API .