关于多级控制器和分层控制器希望大家不要被名称所困扰,这两个概念我更希望通过目录结构的改变来给大家说明。只是控制器所在的位置不同而已。
点击进入视频教程
分层控制器中所定义的控制器其实是不能被URL直接访问得到,作为一个类被内部实例化调用而已,它也可以被试图调用。我们说多级控制器是在controller目录下新建目录来放置一类控制器类。
其实分层控制器是在模块目录下创建一个目录,例如在index/goods中来创建类。目录结构变化如图:
那么对于控制器类的定义也就有所不同了,注意命名空间:
那么分层控制器如何使用呢?
$user = \think\Loader::controller('Login', 'user');
echo $user->getuserinfo();
为了方便调用,系统提供了controller助手函数直接实例化多层控制器,例如:
$user = controller('Login', 'user');
echo $user->getuserinfo();
支持跨模块调用,例如:
$user = controller('Admin/Login', 'user');
echo $user->getuserinfo();
也可以使用简化的方式来使用:
$user = \think\Loader::action(‘Login/getuserinfo’,’’,’user’);
//助手函数方式 action(‘Login/getuserinfo’,’’,’user’);
当然以上调用也可以在模板中使用模板中调用函数的方式来调用。