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