ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 多级控制器 当一个模块下面有较多的控制器之后,就会涉及到控制器分组和分级的管理需求,毕竟一个目录下面一大堆的控制器看着也难受。 简单来说就是把原来controller目录下面的控制器分别放到不同的子目录下面去,并且在子目录下面仍然还可以再划分子目录,对于这种方式的控制器我们称之为多级控制器,多级控制器就是一种明确的从属关系的控制器定义和访问,举个例子如果我们要区分访问前后台的用户操作,控制器定义如下: 后台User控制器: ~~~ <?php namespace app\index\controller\admin; class User { public function index() { return '后台用户'; } } ~~~ 前台User控制器: ~~~ <?php namespace app\index\controller\home; class User { public function index() { return '前台用户'; } } ~~~ 前后台访问的URL看起来是这样: ~~~ http://tp5.com/index/home.user/index http://tp5.com/index/admin.user/index ~~~ home.user和admin.user就表示一个多级控制器调用,如果有更多的控制器层级,就可以用admin.user.blog,如果有强迫症觉得点号分割不舒服的话,除了使用路由之外,还可以使用控制器自动搜索功能。 以上面的两个控制器为例,我们在应用配置中修改如下参数: ~~~ // 开启控制器自动搜索定位 'controller_auto_search' => true, ~~~ 接下来我们访问 `http://tp5.com/index/home/user/index` 系统会自动在控制器目录下面搜索控制器类文件是否存在,搜索顺序依次为 ~~~ application/index/controller/Home.php application/index/controller/home/User.php ~~~ 直到搜索到实际的控制器类文件就会停止搜索,因为实际存在User.php控制器类,然后调用index操作方法,所以页面会输出: `前台用户`