ThinkPhP中model自动验证 $_validate $_auto

 1 <?php
 2     class UserModel extends RelationModel{
 3
 4
 5         /**自动验证**/
 6         protected $_validate  =  array(
 7             /**array([验证字段],[验证规则],[错误提示],(验证条件(默认为存在字段就验证)),(附加规则),(验证时间))**/
 8             array(‘username‘,‘‘,‘该用户名已经存在!‘,1,‘unique‘),
 9                array(‘password‘,‘5,12‘,‘密码过短,请重新输入!‘,1,‘length‘),// 自定义函数验证密码格式
10                array(‘repassword‘,‘password‘,‘两次密码不一致,请确认输入!‘,1,‘confirm‘),
11         );
12
13         /*这边附加规则中的‘callback‘ 与 ‘function‘ 必须分清楚,‘callback是用户自定义的函数‘,
14             ‘function‘是系统自带的函数
15         */
16         /**验证条件**/
17         /**
18          * Model::EXISTS_VALIDATE 或者0 存在字段就验证(默认)
19          * Model::MUST_VALIDATE 或者1 必须验证
20          * Model::VALUE_VALIDATE或者2 值不为空的时候验证
21          */
22         /**验证时间**/
23            /**
24             * Model::MODEL_INSERT或者1新增数据时候验证
25          * Model::MODEL_UPDATE或者2编辑数据时候验证
26          * Model::MODEL_BOTH或者3全部情况下验证(默认)
27          * 这里的验证时间需要注意,并非只有这三种情况,你可以根据业务需要增加其他的验证时间。
28             */
29
30         /**自动增加**/
31         protected $_auto = array (
32             /**array([增加字段],[增加函数],[增加条件],[附加规则])**/
33             array(‘addtime‘,‘time‘,3,‘function‘),
34         );
35
36         /**后台检查密码长度**/
37         protected function checkPwd($password){
38             if(strlen($password) < 5){
39                 return false;
40             }else{
41                 return true;
42             }
43         }
44
45     }
46
47 ?>

动态绑定模式:

 1 <?php
 2     class UserAction extends Action{
 3
 4         public function user(){
 5             $this->display();
 6         }
 7
 8         public function index(){
 9             $user = D(‘User‘);
10             $validate  =  array(
11                 /**array([验证字段],[验证规则],[错误提示],(验证条件(默认为存在字段就验证)),(附加规则),(验证时间))**/
12                 array(‘username‘,‘‘,‘该用户名已经存在!‘,1,‘unique‘),
13                    array(‘password‘,‘5,12‘,‘密码过短,请重新输入!‘,1,‘length‘),// 自定义函数验证密码格式
14                    array(‘repassword‘,‘password‘,‘两次密码不一致,请确认输入!‘,1,‘confirm‘),
15             );
16             $auto = array(
17                 array(‘addtime‘,‘time‘,3,‘function‘),
18             );
19             // model模型中的内置函数
20             // $user->setProperty(‘_validate‘,$validate);
21             // $user->setProperty(‘_auto‘,$auto);
22             $user->validate($validata)->auto($auto);
23             if($user->create()){
24                 if($user->add()){
25                     $this->success(‘注册成功‘);
26                 }else{
27                     $this->error(‘注册失败‘);
28                 }
29             }else{
30                 $this->error($user->getError());
31             }
32         }
33     }
34 ?>
时间: 2024-10-10 10:53:26

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

model中的自动验证 $_validate $_auto

普通模式: 1 <?php 2 class UserModel extends RelationModel{ 3 4 5 /**自动验证**/ 6 protected $_validate = array( 7 /**array([验证字段],[验证规则],[错误提示],(验证条件(默认为存在字段就验证)),(附加规则),(验证时间))**/ 8 array('username','','该用户名已经存在!',1,'unique'), 9 array('password','5,12','密码过

Thinkphp表单自动验证

之前项目经常用到,没做总结. 自动验证是Thinphp模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用create()方法,(返回值为true/false),会自动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义验证规则(验证规则下面会详细说明),当create()方

ThinkPhp 3.2 自动验证

自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 数据验证有两种方式: 静态方式:在模型类里面通过$_validate属性定义验证规则. 动态方式:使用模型类的validate方法动态创建自动验证规则. 无论是什么方式,验证规则的定义是统一的规则,定义格式为: array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]

关于thinkPHP中的自动加载和手动导入

首先先讲自动加载: 前提:你的第三方类库要满足(1)符合命名规范和后缀的类库(2)使用命名空间,命名空间和路径一致的类库 (1)在ThinkPHP目录下的library目录下的每一个子目录都是一个根命名空间 (2)凡是以这些子目录为根命名空间的类都可以自动加载 例如:Org/某某.class.php  Think/某某.class.php  我们在项目中使用的时候 (a)直接 new \Org\某某.class.php既可以获得对象,或者 (b)use Org\某某; 实例化的时候直接new 某

Thinkphp 中的自动验证 上一篇有例子

说明,只要定义了Model,在任何地方调用,都会进行验证.很方便. 必须是D方法,才会有效.M方法不会触发自动验证. array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]), ..... ); 1.验证字段 需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等.有个别验证规则和字段无关的情况下,验证字段是可以随意设置的,例如e

ThinkPhP中model字段映射 $_map

1 <?php 2 class UserModel extends RelationModel{ 3 /**将表单中的name映射到该表中的username**/ 4 protected $_map = array( 5 'name' => 'username', 6 ); 7 /*所以在表单提交时不需要改变表单中的'name'名称 8 *当要读出'name'的值时,表中存在的是username,所以,需要用函数转化 9 *$data = $User->parseFieldsMap($d

在Thinkphp中【自动加载自定义扩展配置文件】!

/Conf/config.php为正式的扩展文件 /Conf/verify.php为扩展的自定义配置文件 /Conf/sendmail.php为扩展的自定义配置文件 如果要自动加载 verify和sendmail的扩展配置文件,方法如下: 在Config.php里新增一个: 'LOAD_EXT_CONFIG' => 'verify,sendmail' 就可以了. verify.php内容: <?php return array( 'size' => 4, 'title' => '测

ThinkPHP 表单自动验证运用

使用TP 3.2框架 public function add_post(){ //验证规则 $rule=array( array('name','require','请输入姓名',1),//必须验证name ); $m=M('user'); //获取name,sex,contact数据到模型,并验证 if(!$m->field('name,sex,contact')->validate($rule)->create()) $this->error($m->getError()

thinkPHP中的三大自动

class UserModel extends Model{ protected  $_validate=array( //下面还需要再写数组.一个数组就是一条验证规则 //array('验证字段','验证规则','错误提示','验证条件','附加规则','验证时间'), //验证字段:需要验证的表单字段名称,也可以表单当中的一些辅助字段,例如验证码,附加码,重复密码等 //验证规则,验证规则必须要结合附加规则一起使用 //错误提示:如果出现错误,抛出一个什么样的错误提示告知用户 //验证条件: