ThinkPHP中自动验证
来源:互联网 发布:天下数据 科学上网 编辑:程序博客网 时间:2024/04/20 07:34
验证规则:
array(‘字段’,‘验证规则’,‘错误提示’[,‘验证条件’,‘附加规则’,‘验证时间’]),
1、验证字段:一般来说是表单的字段名,但不一定需要与数据表的字段匹配,比如新用户注册时常见的密码确认
2、验证规则:系统内置了常用的规则,require(字段必填)、email(邮箱格式)、url(url格式)、currency(货币)、number(正整数)、integer(整数)、double(浮点数)、zip(邮
政编码
政编码)、english(英文)。这些规则默认采用的附加规则是regex,正则表达式验证,只不过是设定好的。
3、错误信息:验证失败后的提示 。
4、验证条件:共三种:
1.self::EXISTS_VALIDATE 或0,表示存在字段就验证(推荐使用) ;
2.self::MUST_VALIDATE 或1,表示必须验证;
3.self::VALUE_VALIDATE 或2,表示值不为空的时候验证。
5、验证时间:主要新增修改等验证。
1.self::MODEL_INSERT 或1 新增数据时验证;
2.self::MODEL_UPDATE 或2 编辑数据时验证;
3.self::MODEL_BOTH或 3 全部情况下验证(推荐使用)。
一、静态定义
在模型类里预先定义好该模型的自动验证规则,就是静态定义。
1、在Home/Model目录下建立UserModel.class.php文件,内容如下:class UserModel extends Model {
protected $_validate= array(
//默认情况下用系统内置
array('user','require','用户不得为空!'),
//验证数据唯一性
array('user','','用户名称已存在!',2,'unique',1),
//验证密码不得为空
array('pass','require','密码不得为空!'),
//密码不得小于六位不得大于20位
array('pass','6,20','密码不得小于6位,不得大于20位', 3,'length'),
);
}
2、在Home/controller目录下建立Usercontroller.class.php,内容如下:
//控制器create()方法自动调用验证
$user = D('User');
$data['user'] ='蜡笔小新';
$data['pass'] ='123';
if ($user->create($data)) {
echo '所有数据验证成功!';
} else {
//输出错误信息
var_dump($user->getError());
}
重点介绍一下附加规则中的callback(回调验证)和function(函数验证):
1、callback(回调验证)
UserModel.class.php中的格式如下:
class UserModel extends Model{
protected $_validate=array(
array('user','checklength','用户名必须在3-5之间!',0,'callback',3,array(3,5)),
);
function checklength($str,$min,$max){
preg_match_all("/./u", $str,$matchs);
$len=count($matchs[0]);
if($len<$min || $len>$max){
return false;
}else{
return true;
}
}
}
其中回调函数直接写在user类里面
2、function(函数验证)
UserModel.class.php中的格式如下:
class UserModel extends Model{
protected $_validate=array(
array('user','checklength','用户名必须在3-5之间!',0,'function',3,array(3,5)),
);
}
函数内容需要在 Home/Common 文件夹下的 Common 文件夹建立function.php 文件,会自动加载 ,内容如下:
function checkLength($str,$min,$max) {
preg_match_all("/./u", $str, $matches);
$len = count($matches[0]);
if ($len < $min || $len > $max) {
return false;
} else {
return true;
}
}
- ThinkPHP中自动验证
- thinkphp 自动验证
- thinkphp 验证 自动填充
- ThinkPHP 自动验证
- Thinkphp 自动验证
- thinkphp自动验证相关
- Thinkphp自动验证
- thinkphp自动验证
- ThinkPHP 自动验证
- ThinkPHP 自动验证
- thinkphp中的自动验证
- thinkPHP 自动验证
- thinkphp自动验证---$_validate
- Thinkphp 模型->自动验证
- thinkphp自动验证
- ThinkPHP自动验证
- ThinkPHP中自动验证时常用的正则表达式
- Thinkphp中自动验证function和callback的区别
- ffmpeg ./configure参数说明
- abap smartforms 实现单据
- linuxtomacat如何将监听端口改为80
- String类型的不变性理解:
- 使用CMake编译代码教程之0
- ThinkPHP中自动验证
- 穷人为何穷,富人为何富
- ABAP 常用FUNCTION集锦
- 强大的SpannableStringBuilder
- Android通过SOCKET下载文件的方法
- 智慧城市构想
- 比Spark快10倍的Hadoop3.0有哪些实用新特性?
- 谁说安卓没有好的提示控件——LemonBubble4Android来啦
- ALV EDIT_MASK应用-负号前置/小数位处理