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 { |
荒野乱斗国际版 (BrawlStars)最新版本v56.274
下载一波超人内置修改器菜单版 安卓版v1.0.2
下载敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载继承了一座戏园子无限声望铜钱版 内置菜单最新版v1.7
继承了一座戏园子折相思版是游戏的破解版本,在该版本中为玩家提
山河半世橙光清软金手指版 无限鲜花v3.24
山河半世是一款超级好玩的橙光恋爱游戏,在游戏中玩家们需要扮演
蓬莱手游折相思版 安卓版v1.0.0
蓬莱免广告版是游戏的修改版本,在该版本中为玩家去除了广告,玩
当红影后橙光游戏破解版2025 最新版v1.0
当红影后橙光破解版是一款超级好玩的娱乐圈题材的橙光游戏,在这
忽然成了万人迷清软完结版 无限鲜花版v12.15
忽然成了万人迷破解版是一款非常好玩的男性向橙光游戏,在有一天