Yii中对CUniqueValidator使用附加字段结合判断
需求,在AR中,name字段需要结合site_id来验证唯一,但是直接在rules中定义的话,无效。经多次测试,是由于无法获取该附加字段的当前值,如片段1。于是添加一个自定义的验证方法,见
需求,在AR中,name字段需要结合site_id来验证唯一,但是直接在rules中定义的话,无效。经多次测试,是由于无法获取该附加字段的当前值,如片段1。
于是添加一个自定义的验证方法,见片段2。
如有更好方案,欢迎提供交流,谢谢!
于是添加一个自定义的验证方法,见片段2。
如有更好方案,欢迎提供交流,谢谢!
public function rules()
{
return array(
array('name', 'unique', 'criteria' => array('condition' => "`user_site_id`=>'{$this->user_site_id}'")),
);
}
2. [代码]自定义验证规则 跳至 [1] [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);
}
}
- 上一篇:快递网点查询
- 下一篇:得到文章中第一个图片的链接
精彩图集
精彩文章






