有关 thinkphp 3.2.3 新版 自动验证 自定义 验证时间

浏览:2819 发布日期:2015/09/13
3.2.3 - 严重 - 已关闭

在用 thinkphp3.2.3 新版 自动验证 里面 有这样一个判断 foreach($_validate as $key=>$val) {
                // 验证因子定义格式
                // array(field,rule,message,condition,type,when,params)
                // 判断是否需要执行验证
                if(empty($val[5]) || ( $val[5]== self::MODEL_BOTH && $type < 3 ) || $val[5]== $type ) {
                    if(0==strpos($val[2],'{%') && strpos($val[2],'}'))
                        // 支持提示信息的多语言 使用 {%语言定义} 方式
                        $val[2]  =  L(substr($val[2],2,-1));
                    $val[3]  =  isset($val[3])?$val[3]:self::EXISTS_VALIDATE;
                    $val[4]  =  isset($val[4])?$val[4]:'regex';
                    // 判断验证条件
                    switch($val[3]) {
                        case self::MUST_VALIDATE:   // 必须验证 不管表单是否有设置该字段
                            if(false === $this->_validationField($data,$val))
                                return false;
                            break;
                        case self::VALUE_VALIDATE:    // 值不为空的时候才验证
                            if('' != trim($data[$val[0]]))
                                if(false === $this->_validationField($data,$val))
                                    return false;
                            break;
                        default:    // 默认表单存在该字段就验证
                            if(isset($data[$val[0]]))
                                if(false === $this->_validationField($data,$val))
                                    return false;
                    }
                }
            }
里面有 这样 一句判断if(empty($val[5]) || ( $val[5]== self::MODEL_BOTH && $type < 3 ) || $val[5]== $type ) {}疑惑是 这里的 self::MODEL_BOTH (self::MODEL_BOTH或者3全部情况下验证(默认)) 不是所有 的都得验证吗?如果 加上 $type < 3 这个条件 不就 禁止了 这个吗?如果自定义的值大于了3 不就违背了这个定义吗

这里只能设置小于1的值 才行 我想这不是 你们想要的思路吧
评论(
后面还有条评论,点击查看>>