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); } }
- 上一篇:快递网点查询
- 下一篇:得到文章中第一个图片的链接
精彩图集
精彩文章