普通模式:

 <?php
class UserModel extends RelationModel{ /**自动验证**/
protected $_validate = array(
/**array([验证字段],[验证规则],[错误提示],(验证条件(默认为存在字段就验证)),(附加规则),(验证时间))**/
array('username','','该用户名已经存在!',1,'unique'),
array('password','5,12','密码过短,请重新输入!',1,'length'),// 自定义函数验证密码格式
array('repassword','password','两次密码不一致,请确认输入!',1,'confirm'),
); /*这边附加规则中的'callback' 与 'function' 必须分清楚,'callback是用户自定义的函数',
'function'是系统自带的函数
*/
/**验证条件**/
/**
* Model::EXISTS_VALIDATE 或者0 存在字段就验证(默认)
* Model::MUST_VALIDATE 或者1 必须验证
* Model::VALUE_VALIDATE或者2 值不为空的时候验证
*/
/**验证时间**/
/**
* Model::MODEL_INSERT或者1新增数据时候验证
* Model::MODEL_UPDATE或者2编辑数据时候验证
* Model::MODEL_BOTH或者3全部情况下验证(默认)
* 这里的验证时间需要注意,并非只有这三种情况,你可以根据业务需要增加其他的验证时间。
*/ /**自动增加**/
protected $_auto = array (
/**array([增加字段],[增加函数],[增加条件],[附加规则])**/
array('addtime','time',3,'function'),
); /**后台检查密码长度**/
protected function checkPwd($password){
if(strlen($password) < 5){
return false;
}else{
return true;
}
} } ?>

动态绑定模式:

 <?php
class UserAction extends Action{ public function user(){
$this->display();
} public function index(){
$user = D('User');
$validate = array(
/**array([验证字段],[验证规则],[错误提示],(验证条件(默认为存在字段就验证)),(附加规则),(验证时间))**/
array('username','','该用户名已经存在!',1,'unique'),
array('password','5,12','密码过短,请重新输入!',1,'length'),// 自定义函数验证密码格式
array('repassword','password','两次密码不一致,请确认输入!',1,'confirm'),
);
$auto = array(
array('addtime','time',3,'function'),
);
// model模型中的内置函数
// $user->setProperty('_validate',$validate);
// $user->setProperty('_auto',$auto);
$user->validate($validata)->auto($auto);
if($user->create()){
if($user->add()){
$this->success('注册成功');
}else{
$this->error('注册失败');
}
}else{
$this->error($user->getError());
}
}
}
?>

model中的自动验证 $_validate $_auto的更多相关文章

  1. tinkphp中的自动验证

    tinkphp是国内非常流行的一个开源框架,国内大小公司都在用的框架.对于初学的好多同学感觉不太好上手,其实并没没有大家想的那么复杂.自动验证功能是thinkphp提高的一种数据验证方法,分为动态和静 ...

  2. thinkphp中的自动验证

    array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间]) 1.验证字段 需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等.有 ...

  3. model中字段格式验证

    注释部分在前端不显示 /// <summary> /// 链接地址 /// </summary> [Display(Name = "链接地址")] //[D ...

  4. 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证

    在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...

  5. CompareValues标签对Model中的属性进行验证

    在Asp.Net MVC中实现CompareValues标签对Model中的属性进行验证   在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现Model两个 ...

  6. 在.Net MVC中自定义ValidationAttribute标签对Model中的属性做验证

    写一个继承与ValidationAttribute类的自定义的验证方法 MVC中传递数据时,大多数都会用Model承载数据,并且在传到控制器后,对Model进行一系列的验证. 我平时经常使用的判断方法 ...

  7. thinkPHP中服务器端的验证

    <?php class UserModel extends Model{ //user是表的名称 必须以表名开始,继承Model类 protected $_validate=array( //a ...

  8. tp5 model 中的查询范围(scope)

    查询范围scope在model中定义,在controller中使用 namespace app\index\model; use think\Model; class User extends Mod ...

  9. thinkphp自动验证---$_validate

    thinkphp中的自动验证 array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间]) 1.验证字段 需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段 ...

随机推荐

  1. nmap简介和使用

    文章链接:https://blog.csdn.net/m1585761297/article/details/80015726 参考链接:https://www.cnblogs.com/nmap/p/ ...

  2. Notes for "Python in a Nutshell"

    Introduction to Python Wrap C/C++ libraries into Python via Cython and CFFI. Python implementations ...

  3. uiautomator设备和选择器~Python详解

    1.设备对象 引入uiautomator,获取设备对象<所谓设备对象可理解为:Android模拟器或者真机> 语法:from uiautomator import device as d ...

  4. newinstance和new的区别

    newinstance将对象创建分为两个步骤,解耦的手段,先调用class.forName加载类,然后再去实例化它 new可以不用加载,不是一定 newinstance作为依赖注入 https://b ...

  5. BZOJ-9-3295: [Cqoi2011]动态逆序对

    题意:N个数的排列,M次操作,每次求当前的逆序对数量并删掉一个数 思路 :动态说的很到位.hiahia ... 最初一直没想明白为什么 大佬的cdq 中统计了两次. 先定义 给出的删除的点的 t 值依 ...

  6. MongDB 数据结构

    Object  ID :Documents 自生成的 _id String: 字符串,必须是utf-8 Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True ...

  7. jdk1.8.0_40 +maven+tomcat7.0+mysql8.0详细安装教程

    (一)  jdk的安装 1.下载jdk推荐下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...

  8. js实现数组去重的几种方法

    1.简单结构的数组,例如[1,2,3,3,4],使用es6提供的Set和Array.from Set:是一种新的数据结构,可以接收一个数组或者是类数组对象,自动去重其中的重复项目. 类数组对象:只包含 ...

  9. vue全选反选demo

    <template> <div> <div class="xuanze"> <label><input type=" ...

  10. Tornado-Form表单验证

    基本思路 用户提交表单后,验证开始.页面中会有多个域要求验证,如text input,files, checkbox.同时,根据验证字段的不同,验证方式会有很多种,例如对邮箱.IP地址.电话的验证标准 ...