欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

Yii中对CUniqueValidator使用附加字段结合判断

程序员文章站 2022-05-06 11:28:47
...
1.在AR的rules中的定义
public function rules()
{
    return array(
        array('name', 'unique', 'criteria' => array('condition' => "`user_site_id`=>'{$this->user_site_id}'")),
    );
}

2.自定义验证规则

public function rules()
{
    return array(
        array('name', 'validateSiteUnique');
    );
}
 
public function validateSiteUnique($attribute, $param)
{
    if (!$this->hasErrors()) {
        $siteUniqueCriteria = new CDbCriteria();
        $siteUniqueCriteria->addCondition("`user_site_id`='{$this->user_site_id}'");
        $validator = new CUniqueValidator();
        $validator->attributes = array($attribute);
        $validator->criteria = $siteUniqueCriteria;
        $validator->validate($this);
    }
}