Dans cet article, l'éditeur vous apprendra comment gérer les opérations vides et les contrôleurs vides dans le framework ThinkPHP. En bref, les opérations dites vides et les contrôleurs vides signifient que la méthode ou le contrôleur n'existe pas dans le. système, et ils provoqueront Le système a signalé une erreur. Les amis intéressés devraient venir le découvrir ensemble.
URL correcte (environnement de test) : http://oa.com/index.php/admin/public/login Accédez comme suit :
1 : Aucun traitement d'opération
Modifiez la méthode de connexion et l'erreur sera signalée comme suit :
Le système dispose par défaut d'un mécanisme de rapport d'erreurs intégré : 1. Mauvaise expérience utilisateur 2. Risques de sécurité sérieux.
Regardez le fichier du contrôleur de classe parent Controller.class.php et trouvez le code suivant :
Cela signifie que si la méthode appelée le fait not exist Mais si la méthode _empty() est définie, _empty() sera exécutée ou un fichier modèle portant le même nom que la méthode appelée sera affiché. Il est impossible de créer un modèle pour chaque méthode inconnue, nous utilisons donc ici la méthode _empty() pour gérer les opérations vides. Définissez la méthode _empty() dans le contrôleur Public comme suit :
Résultats d'exécution :
peuvent être transmis Un fichier modèle est introduit dans la méthode _empty() pour rendre la page plus belle. Ceci n'est qu'un test. Mais quand on a beaucoup de contrôleurs, il n'est pas raisonnable de définir un _empty() dans chaque contrôleur dans
. Dans ce cas, il peut être défini dans la classe parent Controller.class.php, et les sous-classes It. peut être utilisé comme suit :
Mais généralement le code dans la classe parent Controller.class.php ne sera pas modifié. Vous pouvez l'ajouter entre la classe enfant. et la classe parent. Un contrôleur intermédiaire est implémenté (voir l'article suivant pour plus de détails).
2. Traitement du contrôleur vide
Modifiez le nom du contrôleur en Publicu et l'erreur est la suivante :
Voir App.class.php et il y a le code suivant :
Vous pouvez donc créer un autre contrôleur EmptyController.class.php et build in _empty() Méthode pour accéder à ce contrôleur lorsque le contrôleur accédé n'existe pas.
Visitez à nouveau la page, comme suit :
Tutoriels associés : Tutoriel vidéo PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!