Utilisation de ModelNotFoundException
Je suis débutant dans Laravel et souhaitez découvrir plus sur l'utilisation de la gestion d'erreur en particulier la ModelNotFoundException
objet.
<?php
class MenuController extends BaseController {
function f() {
try {
$menus = Menu::where('parent_id', '>', 100)->firstOrFail();
} catch (ModelNotFoundException $e) {
$message = 'Invalid parent_id.';
return Redirect::to('error')->with('message', $message);
}
return $menus;
}
}
?>
Dans mon modèle:
<?php
use Illuminate\Database\Eloquent\ModelNotFoundException;
class Menu extends Eloquent {
protected $table = 'categories';
}
?>
Bien sûr, pour mon exemple, il n'existe pas de dossiers dans "catégories" qui ont un parent_id > 100
c'est mon test de l'unité. Donc, je m'attends à faire quelque chose avec ModelNotFoundException
.
Si je lance http://example.co.uk/f dans mon navigateur, je reçois:
Illuminate \ Database \ Eloquent \ ModelNotFoundException
No query results for model [Menu].
la laravel page d'erreur qui est prévu, mais comment puis-je rediriger vers ma route "erreur" avec la pré-définis message? c'est à dire
<?php
//error.blade.php
{{ $message }}
?>
Si vous pouviez me donner un exemple.
source d'informationauteur cookie
Vous devez vous connecter pour publier un commentaire.
Dans
Laravel
par défaut, il est un gestionnaire d'erreur, a déclaré dansapp/start/global.php
qui ressemble à quelque chose comme ceci:Ce gestionnaire essentiellement des captures de toutes les erreurs si il n'existe aucun autre gestionnaire ont été déclarés. Pour déclarer un spécifique (uniquement pour un type d'erreur), vous pouvez utiliser quelque chose comme suivant dans votre
global.php
fichier:c'est mieux de déclarer un gestionnaire d'erreur à l'échelle mondiale, de sorte que vous n'avez pas à traiter avec elle dans chaque modèle/contrôleur. Pour déclarer spécifiques gestionnaire d'erreur, n'oubliez pas de le déclarer après (en bas) le gestionnaire d'erreurs par défaut parce que les gestionnaires d'erreur se propage à partir de la plupart spécifiques à générique.
Lire plus sur Erreurs & exploitation forestière.
Suffit d'utiliser l'espace de noms
Ou de le renvoyer à un nom externe avec un alias