最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ThinkPHP自动验证功能详解
时间:2022-06-25 02:35:40 编辑:袖梨 来源:一聚教程网
ThinkPHP自动验证
ThinkPHP内置了数据对象的自动验证功能来进行模型的业务规则验证。大多数情况下,数据是由表单提交的$_POST数据创建。则使用系统的自动验证功能,只需要在Model类里面定义$_validate属性,它是由多个验证因子组成到得二维数组。
验证因子格式:
| 代码如下 | 复制代码 |
|
protected $_validate = array( |
|
实例(以注册时验证注册信息):
| 代码如下 | 复制代码 |
|
class RegisterUser extends Model{ |
|
当使用create方法创建数据对象时会自动进行数据验证(当POST提交表单处理时):
| 代码如下 | 复制代码 |
|
$Register = D("RegisterUser"); |
|
通常,数据的验证规则都是相对固定,但有些特殊情况下需要使用其他验证条件,这时我们就需要动态的改变验证规则来满足不同条件。
方法是在模块中使用create方法之前使用setProperty方法,如下(还是以上面注册实例):
| 代码如下 | 复制代码 |
|
$Register = D("RegisterUser"); |
|
批量验证
新版支持数据的批量验证功能,只要在模型类里面设置patchValidate属性为true(默认为false),设置批处理验证后,getError()方法返回的错误信息是一个数组,返回格式是:
| 代码如下 | 复制代码 |
|
array("字段名1"=>"错误提示1","字段名2"=>"错误提示2"...) |
|
thinkphp自动验证无效的问题
Action方法: IndexAction下的adds方法,D(“Liuyan”)获取post提交过来的内容,create()方法创建数据对象,D方法创建了数据对象才可以自动调用验证。
| 代码如下 | 复制代码 |
| public function adds(){ $ly=D("liuyan"); $result=$ly->create(); if($result){ echo 'success'; $ly->add(); } else{ exit($ly->getError()); } } |
|
Model方法:
自动验证功能,加上$_validate属性,以数组的形式定义验证规则。
| 代码如下 | 复制代码 |
|
class LiuyanModel extends Model{ |
|
这样写的问题是,新增数据没有问题,但是不能自动调用验证功能,ThinkPHP的验证功能失效了。弄了半天,才知道,原因在于D(“Liuyan”)这样写才是对的,首字母大写
自动验证失败及解决方法
Action 事件
| 代码如下 | 复制代码 |
|
/* |
|
Model
| 代码如下 | 复制代码 |
|
class LoginModel extends Model { |
|
相关文章
- 流放之路2全部高价值传奇物品汇总 10-24
- 流放之路2凛冬狼的头颅获取方法分享 10-24
- 流放之路2远古誓言任务攻略分享 10-24
- 流放之路2全部地图隐藏奖励介绍说明 10-24
- 流放之路2通货E是什么 通货E介绍说明 10-24
- 夺宝奇兵渲染器设置错误解决方法分享 10-24