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 