控制器
前台控制器没有太多规则约束(但还是会有那么一丢丢),您也可以完全按照TP6官方文档来进行开发,但我们还是建议您尽量遵循一下我们的开发规范。
我们还是为前台控制器定义了一个简单的基类控制器(/app/common/controller/Home.php),在此基类控制器中我们定义了一些必要的基础属性和通用方法,具体请往下看:
基础属性
/**
* 是否开启布局模板|布局模板文件路径
* @var bool|string
*/
protected $layout = false;
/**
* 无需鉴权的方法,但要登录
* @var array
*/
protected $noNeedAuth = [];
/**
* 无需登录的方法
* @var array
*/
protected $noNeedLogin = [];
/**
* 数据权限设置,可选值:own 个人,org 组织,false 不启用
* @var string|bool
*/
protected $dataRight = false;
/**
* 数据权限字段名
* @var string
*/
protected $dataRightField = 'admin_id';
/**
* 模板基础路径
* @var string
*/
protected $viewPath = '';
/**
* 权限Auth
* @var Auth
*/
protected $auth = null;
通用方法
仅供控制器内部使用,无法通过url访问
/**
* 验证数据
* @access protected
* @param array $data 数据
* @param string|array $validate 验证器名或者验证规则数组
* @param array $message 提示信息
* @param bool $batch 是否批量验证
* @return array|string|true
* @throws ValidateException
*/
protected function validate(array $data, $validate, array $message = [], bool $batch = false)
{
}
/**
* 模板变量赋值
* @access public
* @param mixed $name 变量名
* @param mixed $value 变量值
* @return $this
*/
protected function assign($name, $value = '')
{
}
/**
* 输出响应
*
* @param mixed $msg 提示信息
* @param mixed $data 要返回的数据
* @param integer $code 错误码/状态码
* @param string $type 输出类型,可选值:json、xml、jsonp
* @return json
*/
protected function response($msg, $data, int $code = 0, string $type = null, array $header = [])
{
}
/**
* 输出layui的json数据
*
* @param array $data
* @param integer $count
* @return json
*/
protected function layuiJson($data, $count = 0)
{
}
/**
* 以JSONP格式输出错误信息
*
* @param string $msg
* @param array $data
* @param string $url
* @return jsonp
*/
protected function errorJsonp($msg = 'error', $data = [], $url = '')
{
}
/**
* 以JSONP格式输出成功信息
*
* @param string $msg
* @param array $data
* @param string $url
* @return jsonp
*/
protected function successJsonp($msg = 'success', $data = [], $url = '')
{
}
/**
* 解析和获取模板内容 用于输出
* @access public
* @param string $template 模板文件名或者内容
* @param array $vars 模板变量
* @return string
* @throws \Exception
*/
protected function fetch(string $template = '', array $vars = []): string
{
}
公共模板变量
模板变量名称 | 生成的内容 | 备注数据 |
---|---|---|
STATIC | /static/[app] | 静态资源路径前缀 |
UPLOAD | /upload | 附件路径 |
PUBLIC_CSS | /static/css | 公共CSS文件目录 |
PUBLIC_JS | /static/js | 公共JS文件目录 |
PUBLIC_IMG | /static/image | 公共image文件目录 |
CSS | /static/[app]/css | 当前应用的CSS文件目录 |
JS | /static/[app]/js | 当前应用的js文件目录 |
IMG | /static/[app]/image | 当前应用的image文件目录 |
[app] 为当前应用或插件名