自动验证与自动完成同时存在时,自动完成规则配置丢失

浏览:445 发布日期:2014/08/21
3.2.2 - 严重 - 未处理
当自动验证与自动完成同时存在时,自动完成规则配置丢失,protected $_validate  = array(
        array('name', 'require', '物业公司账户名必须填写!', \Think\Model::MUST_VALIDATE, 'regex', \Think\Model::MODEL_INSERT),
        array('name', '', '名称已经存在!', \Think\Model::VALUE_VALIDATE, 'unique', \Think\Model::MODEL_BOTH)
    );
写法:$m->validate($this->_validateRules)->auto($this->_autoRules)->create($data, 1)通过分析,大概知道是因为,Model.class.php中的方法:_validationFieldItem

其中的分支:case 'unique':存在有一句问题代码:if($this->where($map)->find())   return false;这一句中的find函数,会涉及到调用,$options            =   $this->_parseOptions($options);在函数:_parseOptions 中,有一行代码是:$this->options  =   array();因此导致,对象在进行自动验证的同时,将自动完成的配置值:【$this->options】 清空,从而存在bug
评论(
后面还有条评论,点击查看>>