多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
HisiPHP的控制器分为后台控制器(admin),前台控制器(home)。 ## 后台控制器(admin) 后台控制器位于模块目录下面的admin目录,所有后台管理控制器必须放到此目录下面,``所有后台控制均需继承 app\admin\controller\Admin 控制器``,模板赋值方法同ThinkPHP一样。示例代码如下: >[info] 后台控制器访问路径:/admin.php/模块名/控制器名/方法名 ~~~php <?php namespace app\test\admin; use app\admin\controller\Admin; // 后台默认首页控制器 class Index extends Admin { public function index() { // 分组切换类型:0单个分组[有链接],1分组切换[有链接],2分组切换[无链接],3无需分组切换,具体请看模块下面的view/layout.php $this->assign('tab_type', 1);// 默认值 0 // tab切换数据 $tab_data = [ 'menu' =>[ ['title' => '管理员角色', 'url' => 'admin/user/role'], ['title' => '系统管理员', 'url' => 'admin/user/index'], ] , 'current' => 'admin/user/role' ]; $this->assign('tab_data', $tab_data); // 列表页默认数据输出变量 $data_list = []; $this->assign('data_list', $data_list); // 分页代码 $this->assign('pages', $data_list->render()); return $this->fetch(); } } ~~~ 以上代码运行后的效果如下: ![](https://box.kancloud.cn/cf9cd7cc24cec4eb296adeb520b69428_1364x316.png) >[info] 上图红框标记的效果,请留意以上示例代码里面的“分组切换类型(tab_type)”和“tab切换数据(tab_data)”的赋值。 如果你的控制器不需要权限验证,则可直接继承``app\common\controller\Common 控制器``。 ## 前台控制器(home) 前台控制器位于模块目录下面的home目录,所有前台控制器必须放到此目录下面,``所有前台控制均需继承 app\common\controller\Common 控制器``,模板赋值方法同ThinkPHP一样。示例代码如下: >[info] 前台控制器访问路径:/模块名/控制器名/方法名 >如果你将test设置为默认模块,访问路径则变为:/控制/方法 ~~~php <?php namespace app\test\home; use app\common\controller\Common; // 前台默认首页控制器 class Index extends Common { public function index() { $data = []; $this->assign('data', $data); return $this->fetch(); } } ~~~ >[info] 模块前台模板文件路径:/theme/模块名/default/控制/方法.php