VEITOOL 框架开发文档(TP版)
官方文档
官网
登录
关于框架
免责声明
开发规范
安装部署
目录结构
配置信息
后端开发
前端开发
系统常量
基础配置
依赖框架
构建命令
基础模块
控制器类
权限控制
全局函数
常用方法
单页模式
主框组件
构建组件
搜索渲染
数据字典
VEITOOL文档系统
常用方法
## 常用基类方法 > 所在文件位置:`app\BaseController.php`,继承该基类后的控制器内可调用:$this->方法名() ### 中断反馈信息 ``` php // @access protected // @param string $m 信息字符 // @param int $c 状态值 400前台关闭 401 Ajax请求未登陆 303网址请求未登录 // @param array $d 数组信息 // @param array $h 发送的Header信息 // @throws HttpResponseException exitMsg($m, $c = 0, $d = [], $h = []) ``` 该方法用于非常规控制器即基类控制器中的一些中断反馈。 ### 返回组信息(常用) ``` php // 返回组信息 // @access protected // @param string/array/obj $msg 信息字符 // @param int $code 状态码 // @param array $data 数组信息 // @param int $scode 页头状态码 // @param array $header 头部 // @param array $options 参数 // @return array/json returnMsg($msg = '', $code = 0, $data = [], $scode = 200, $header = [], $options = []) ``` 本框架的所有异步 `json格式数据` 均通过该方法返回给终端。也可以通过设置基类参数:`$this->msgTpl` 指定模板路径,从而返回的是带有视图的信息。通常返回的是 `json格式数据` 此时不记录日志。 ### 带模板反馈提示 ``` php // @access protected // @param string $msg 提示信息 // @param int $tpl 提示模板 默认 /404 // @param string $url 跳转的地址 returnTpl($msg = '', $tpl = '', $url = '') ``` ### 多功能验证过滤 ``` php // @access protected // @param array $name 变量名 /a转数组 /d整数 /f浮点 /b布尔 /s字符串 /u网址净化 /h全净化 // 去标签 /c转为HTML实体 /r转为2位小数 /*验证【默认允许:汉字|字母|数字|下划线|空格.#-】 // @param mixed $type 方法类型 默认 post // @param string|array $filter 过滤方法 默认 strip_sql // @param bool $bin 是否以传入数组为准 默认是 // @return array only($name = [], $type = 'post', $filter = 'strip_sql', $bin = true) ``` **only** 是一个功能集成度较高、使用便捷的验证过滤方法,以下通过一些示例来展示其用法: 1. 获取请求数据需要验证`token`:当参数1的数组中设置了键名:'@token' 时那么会对该请求进行`token`验证以防CSRF攻击。 **!!#cc0000 DEBUG开发模式 (APP_DEBUG=false) 下不进行token验证。!!** ```php $data = $this->only(['@token'=>'','field1','field2',...'fieldn']); ``` 2. 快速强转,字段配置格式:'`字段名`/`强转标识符`/`为空或假或0时的提示说明`'。 ```php //标识符有:/a转数组 /d整数 /f浮点 /b布尔 /s字符串 /u网址净化 /h全净化去标签 /c转为HTML实体 /r转为2位小数 $data = $this->only(['@token'=>'','field1/d']); // 对POST传入的字段field1的值强制转换为整数 $data = $this->only(['@token'=>'','field1/d/请输入数字']); // 如果不传或传入的值为假(包括0)则会中断并反馈提示:请输入数字 //其他标识符 类似 ``` 3. 快速自定义规则,字段配置格式:'`字段名`/`*或?或$`/`位数范围`/`提示`/`允许字符集`/`允许的字符`'。 ```php // 0段:字段名 // 1段:*表示对该字段无条件验证;?表示该字段有传入才验证;$表示有传入但不符规则时则置空该字段且不中断 // 2段:可以是自定义位数范围如{1,6} 或常用规则标识名【e邮箱m手机c身份证p密码u帐号n姓名i数串a插件名v配置名】 // 3段:不符合规则时的提示,该提示优先于2段中所设的常用规则标识所附设的提示 // 4段:合法的字符集0,1..串 默认0:字母数字汉字下划线 1:数字 2:小写字母 3:大写字母 4:汉字 5:任何非空白字符 // 5段:额外允许的字符 $data = $this->only(['@token'=>'','email/⁎/e']); //表示传入的email内容必须是邮箱格式(特殊星号不要复制) $data = $this->only(['@token'=>'','email/?/e']); //表示传入表示传入email才会验证,不符合则中断且返回提示 $data = $this->only(['@token'=>'','email/$/e']); //表示如果有传入但不符合则会清空email的内容,且不中断 //常用规则标识e的不合规时默认提示是:邮箱地址格式错误,如果想自定义提示,可以如下 $data = $this->only(['@token'=>'','email/⁎/e/请输入正确的邮箱地址']);(特殊星号不要复制) //以下则表示字段title必须由2-20位汉字字母数字下划线和#组成 //如果不合规则会中断且返回提示:标题必须由2-20位汉字字母数字下划线和#组成 $data = $this->only(['@token'=>'','title/⁎/{2,20}/标题/0/#']); //以下则表示字段title必须由2-20位汉小写字母、大写字母组成 $data = $this->only(['@token'=>'','title/⁎/{2,20}/标题/2,3']); //默认接受收据以所设字段为基准 $data = $this->only(['@token'=>'','aaa','bbb','ccc']); //那么$data的数据肯定是['aaa'=>'?','bbb'=>'?','ccc'=>'?']这样的一个数组(?号表示不确定的值) //也就是不管终端POST过来的数据中是否含有aaa,bbb,ccc这些字段,服务端都会且仅有拿到这些字段的值 //以终端传入的数据字段为基准:第4个参数设为false即可 $data = $this->only(['@token'=>'','aaa','bbb','ccc'], 'post', 'strip_sql', false); //假设终端传入的数据为:$post = ['aaa'=>'a1','ccc'=>'c1','ddd'=>'d1'] //那么服务端拿到的就是:$data = ['aaa'=>'a1','bbb'=>'','ccc'=>'c1','ddd'=>'d1'] //如果某些字段比如转换为了整型,这时不想再对其进行安全函数过滤处理则可以如下: $data = $this->only(['@token'=>'','@userid/d','username','old'], 'post', 'strip_sql', false); //以上 userid 字段不会进行 strip_sql 函数的过滤处理 //注意:如果进行了安全过滤处理,则最终$data['userid']的类型是string,虽然字面值是整数。 ```