## 自动处理
TookPHP 提供了自动验证、自动完成、自动填充等高效的数据处理机制。
说明:
a. create 模型方法执行自动过滤、自动验证、自动完成、自动填充
b. 一般不需要单独执行某个自动处理功能,使用 create() 模型方法调用即可
c. 如果每个方法单独执行时,$this->map() 必须放在最后执行
## 自动验证
TookPHP 框架中通过简单的配置就可以数据的验证处理。
注:必须执行 create 或 validate 模型方法,才会执行自动验证
### 验证规则设置语法
~~~
array(' 字段名 ',' 验证方法 ',' 错误信息 ',' 验证条件 ',' 验证时机 ')
~~~
* 字段名: $_POST 中的字段
* 验证方法:
~~~
如验证方法为 check_user,使用优先级如下
a. check_user 模型方法
b. check_user 函数
c. validate.class.php 类方法
~~~
* 错误信息: 错误信息会记录到模型对象的 error 属性中
* 验证条件
| 值 | 说明 |
| -- | -- |
| 1 | 有表单时 |
| 2 | 必须验证 |
| 3 | 不为空 |
* 验证时机
| 值 | 说明 |
| -- | -- |
| 1 | 插入时 |
| 2 | 更新时 |
| 3 | 插入与更新 |
验证示例演示:
**通过模型的 validate() 方法验证**
~~~
$db = M('user');
$db->validate = array(
array('username', 'nonull', ' 用户名不能为空 ',2,3)
);
if(!$db->create()){
$this->error($db->error);
}
~~~
**扩展模型中的定义**
~~~
class userModel extends Model {
public $validate = array(
array('username', 'nonull', ' 用户名不能为空 ', 2,3),
);
}
~~~