model中的自动验证 $_validate $_auto

普通模式:

<?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());
            }
        }
    }
?>

 

posted @ 2016-04-03 20:50  哟风  Views(191)  Comments(0Edit  收藏  举报