Bonjour à tous,

Je commence avec Laravel et j'ai un souci sur la conception d'une simple page error 404.

Voici mon context :

J'ai un controller "PageController" qui, pour le moment, récupère tous les slugs pour requêter les contenus dans la DB.

Il faut savoir, j'ai très peu de code HTML (juste header/footer) dans la vue associée au controller (view "page").

Ce que je souhaite faire, c'est générer cette page (error 404) via ce même controller page.

Mon problème :

J'arrive bien a générer la page 404 si le slug n'est pas existant dans la DB, mais je ne parviens pas à envoyer en header (dans le controller ?) un status code 404.

Pourriez-vous m'expliquer comme je pourrais faire ?

Merci d'avance.

6 réponses


La méthode abort(404) permet d'envoyer une erreur 404. Avec le bon header ? Je ne sais pas, faut essayer.
http://laravel.com/docs/5.1/errors#http-exceptions

nickleus
Auteur

Bonjour PallMallShow,

Merci pour ton retour, mais je n'ai pas réussi à faire fonctionner "abord".

Entre temps, j'ai testé autre chose qui à l'air de faire l'affaire.

Au lien de mettre dans mon controller :

return view(...)

J'ai utilisé la chose suivante :

return response()->view(...)

Je ne sais pas si c'est bien propre de faire ainsi, mais ça répond temporairement à ce que je cherchais :)

Quand tu dis que tu n'a pas réussi a faire fonctionner, c'est à dire ?
Moi j'utilise simplement (sans include sans rien) :

public function test(){
    if(!$trucmuch)
        abort(404);
}
nickleus
Auteur

Je pense que c'est dû à une mauvaise utilisation de ma part. Cela me générait une exeption. Du coup, pour le moment je concerve ma solution précédente :)

Peut tu re-essayer nous mettre le code et l'erreur ?

Tu peux customiser les exceptions aussi ;)