[Framework BUG] CExistValidator Error Line 81 (v1.1)

源码中原来是这样:

if(!$finder->exists($criteria))

{

$message=$this->message!==null?$this->message:Yii::t(‘yii’,’{attribute} “{value}” is invalid.’);

$this->addError($object,$attribute,$message,array(’{value}’=>$value));

}


其实正确的应该是这样

if($finder->exists($criteria))

{

$message=$this->message!==null?$this->message:Yii::t(‘yii’,’{attribute} “{value}” is invalid.’);

$this->addError($object,$attribute,$message,array(’{value}’=>$value));

}

应该把 "$finder-> …" 前面的 "!" 删除!

这个validator是用来确保输入值的存在,所以源代码是对的。

那我如何写 rules() 呢?

public function rules()


{


         return array(


            array('username', 'exist', 'className' => __CLASS__),


         );


    }

我要的其实是避免 唯一值的列不出现相同的值导致数据库异常的情况

哦!Sorry,看见 unique了,谢谢!!!