版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HobHunter/article/details/77480703
在thinkhphp5中支持任意层次级别的控制器,并且支持路由。很多人看了肯定会说有什么适用场景,有什么用?其实,在写项目的时候,控制器类写的多了, 自然而然的就想会分层。这样有利于控制器的管理。这里给大家讲解下具体如何使用,有一些细节部分需要注意。
模型分层
正常我们写控制器是写在controller目录下。比如一个index控制器,那么控制器的路径为:
/application/admin/controller/Index.php
注:这里演示是在admin模块下
现在我们增加一个api层。里面有一个Blog控制器以及index方法。那么Blog文件的目录为:
/application/admin/controller/api/Blog.php
访问Blog控制器的url就为:
http://域名/admin.php/admin/api.blog/index
使用 . 来做分隔符。不过这样看的话总是感觉不够好,能不能进行优化一下?那就继续往下看。
自动定位控制器
官方提供多级控制器的同时也提供了自动定位的方法。只需要设置下面的配置:
'controller_auto_search'=>true
那么使用下面的url也能达到上面的效果;
http://域名/admin.php/admin/api/blog/index
这里有个细节要注意下,这个配置要写到application/config.php文件中才生效,如果是写在模块下的配置文件中是无效的。比如我上面的admin模块。将配置写到application/admin/config.php这个文件中是没有效果的。原因是框架在运行的时候会先加载config.php里的配置,然后识别出模块后才会加载模块下的config文件。