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 ); } } |