控制器
前台控制器没有太多规则约束(但还是会有那么一丢丢),您也可以完全按照TP6官方文档来进行开发,但我们还是建议您尽量遵循一下我们的开发规范。
我们还是为前台控制器定义了一个简单的基类控制器(/app/common/controller/Home.php),在此基类控制器中我们定义了一些必要的基础属性和通用方法,具体请往下看:

基础属性

  1. /**
  2. * 是否开启布局模板|布局模板文件路径
  3. * @var bool|string
  4. */
  5. protected $layout = false;
  6. /**
  7. * 无需鉴权的方法,但要登录
  8. * @var array
  9. */
  10. protected $noNeedAuth = [];
  11. /**
  12. * 无需登录的方法
  13. * @var array
  14. */
  15. protected $noNeedLogin = [];
  16. /**
  17. * 数据权限设置,可选值:own 个人,org 组织,false 不启用
  18. * @var string|bool
  19. */
  20. protected $dataRight = false;
  21. /**
  22. * 数据权限字段名
  23. * @var string
  24. */
  25. protected $dataRightField = 'admin_id';
  26. /**
  27. * 模板基础路径
  28. * @var string
  29. */
  30. protected $viewPath = '';
  31. /**
  32. * 权限Auth
  33. * @var Auth
  34. */
  35. 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] 为当前应用或插件名