YII自定义验证rules


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

1. [代码]在AR的rules中定义     

1
2
3
4
5
6
public function rules()
{
    return array(
        array('name', 'unique', 'criteria' => array('condition' => "`user_site_id`=>'{$this->user_site_id}'")),
    );
}

2. [代码]自定义验证规则     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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);
    }
}
posted @ 2015-10-29 14:06  HatRed  阅读(180)  评论(0编辑  收藏  举报