> ## 设置验证规则
```
// 1.数组传入(针对在控制器中定义验证)
$rules = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
$validate = new Validate($rules);
// 2.动态追加(定义了验证器的情况下,控制器需要单独验证某个字段,可以追加)
$rules = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
$validate = new Validate($rules);
$validate->rule('zip', '/^\d{6}$/');
$validate->rule([
'email' => 'email',
]);
```
> ## 规则定义格式(`数组格式和字符串格式可以混用`)
```
// 1.字符串形式,用 | 分隔
$rules = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
// 2.数组形式
$rules = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
```
> ## 闭包函数验证
```
// 第一个参数是当前字段的值,第二个参数是全部数据
$validate = new \think\Validate([
'name' => function($value,$data) {
return 'thinkphp'==$value ? true : false;
},
]);
```
> ## 自定义验证规则
```
// 1.验证器类中的写法
namespace app\index\validate;
use think\Validate;
class User extends Validate
{
protected $rule = [
'name' => 'checkName:thinkphp',
];
protected $message = [
'name' => '用户名必须',
];
// 自定义验证规则
(第一个是被验证的数据,第二个是验证规则,第三个是所有的数据)
protected function checkName($value,$rule,$data)
{
return $rule == $value ? true : '名称错误';
}
}
// 2.控制器中的写法
$validate = new Validate(['name' => 'checkName:1']);
$validate->extend('checkName', function ($value, $rule) {
return $rule == $value ? true : '名称错误';
});
$data = ['name' => 1];
$result = $validate->check($data);
// 支持批量注册
$validate->extend([
'checkName'=> function ($value, $rule) {
return $rule == $value ? true : '名称错误';
},
'checkStatus'=> [$this,'checkStatus']
]);
```
> ## 设置字段信息
```
// 验证规则
$rule = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
'email' => 'email',
];
// 设置字段信息
$field = [
'name' => '名称',
'age' => '年龄',
'email' => '邮箱',
];
// 待验证的数据
$data = [
'name' => 'thinkphp',
'age' => 10,
'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule, [] , $field);
$result = $validate->check($data);
```
- 运行环境需求
- tp5目录结构
- 命令行生成代码
- 路由
- 请求
- 获取请求信息
- 超全局变量获取
- 更改请求变量的值
- 判断是否为某种请求类型
- 伪装表单请求类型
- HTTP头部信息
- 伪静态
- 向请求对象中注入自定义的属性和方法
- 简单的传参可以使用参数绑定
- 依赖注入(将对象注入方法作为参数)
- 将请求的数据进行缓存
- 控制器
- 一个控制器代码示例
- 空控制器
- 资源控制器
- 模型
- 一个模型代码示例
- 模型的四种调用方法
- 控制器中调用模型添加数据
- 控制器中调用模型更新数据
- 控制器中调用模型删除数据
- 控制器中调用模型查询数据
- 模型中使用聚合函数
- 获取器
- 修改器
- 自动写入时间戳
- 只读字段
- 软删除
- 自动类型转换
- 数据自动完成
- 查询范围
- 数组方式访问和转换为数组
- json序列化
- 模型的事件
- 关联模型
- 一对一关联
- 一对多关联
- 远程一对多(跨表关联)
- 多对多关联
- 多态关联
- 关联预载入N+1次查询变2次
- 延迟预载入
- 关联统计
- 视图与模板
- 模板引擎配置
- 分配数据到模板
- 输出替换
- 模板中输出变量
- 模板中输出系统变量(配置常量超全局)
- 模板中输出请求信息
- 模板中使用php函数
- 输出到模板中的变量指定默认值
- 模板中进行运算
- 原样输出代码不解析
- 模版中注释
- 模板布局与继承
- 文件包含
- 内置标签
- 循环输出标签
- 比较标签
- 条件判断标签
- 引入资源文件(js-css)
- 使用原生php
- 在模板中定义变量和常量
- 助手函数
- 常用功能
- 表单验证
- 验证器的定义
- 自定义验证规则
- 速查表
- 系统默认根命名空间
- 系统路径常量
- 请求变量
- URL请求和信息方法