In this article, the editor will teach you how to deal with empty operations and empty controllers in the ThinkPHP framework. The so-called empty operations and empty controllers, in short, mean that the method or controller does not exist in the system, and they will cause The system reported an error. Friends who are interested should come and find out together.
Correct URL (test environment): http://oa.com/index.php/admin/public/login Access as follows:
1: No operation processing
If the method is modified to loginw, the error will be reported as follows:
The system has a built-in error reporting mechanism by default: 1. Poor user experience 2. Serious security risks.
Check the parent class controller file Controller.class.php and find the following code:
It means that if the called method does not exist But if the _empty() method is defined, _empty() will be executed, or a template file with the same name as the called method will be displayed. It is impossible for us to create templates for every unknown method, so here we use the _empty() method to handle empty operations. Define the _empty() method in the controller Public as follows:
Running results:
can be passed in A template file is introduced in the _empty() method to make the page more beautiful. This is just a test. But when we have many controllers, it is not reasonable to define an _empty() in each controller. At this time, it can be defined in the parent class Controller.class.php, and the subclasses It can be used as follows:
But usually the code in the parent class Controller.class.php will not be modified. You can add it between the child class and the parent class. An intermediate controller is implemented (see next article for details).
2. Empty controller processing Modify the controller name to Publicu and the error is as follows:
View App.class.php and you will find the following code:
So you can create another EmptyController.class.php controller and build in _empty() Method to access this controller when the accessed controller does not exist.
Visit the page again, as follows:
Related tutorials:
PHP video tutorialThe above is the detailed content of How to deal with null operations and null controllers in ThinkPHP framework. For more information, please follow other related articles on the PHP Chinese website!