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