Yii Custom Validator创建

时间:2014-03-20 06:53:42

标签: yii

我是Yii框架的新手,所以请任何人帮我解决这个问题 如何为以下验证创建自定义验证器类, 我有一个表列表,它上面有listname和types,我的验证器想要检查列表名称对于特定类型是唯一的,例如,

listName Type
test1     1
test2     1
test3     2

当我插入新的列表名称验证器时,我想检索列表名并键入并提供错误(如果它对于特定类型不是唯一的。)

1 个答案:

答案 0 :(得分:1)

如果您正在寻找的话,那么创建自定义验证器方法非常简单。

  1. 您需要在模型中添加一个元素到rules()方法(即protected / model / youTableName.php)

    return array( array('listName', 'uniqueForType', 'type') );

  2. 为youTableName.php创建一个由验证器名称命名的方法。

    public function uniqueForType($field, $params) { $filedToCompare = $this->$field; $fieldToCompareWith = $this->$params; // Do your checking and comparing if($weHaveAnError) { $this->addError($field, printf("This listName already exists for type %s", $this->$params)); } }

  3. 这应该可以解决问题。从http://www.yiiframework.com/forum/index.php/topic/20399-conditional-validation-rule/

    获取该信息