Yii 自定义验证程序创建
我是Yii框架的新手,所以请任何人帮我解决这个问题 如何为以下验证创建自定义验证程序类, 我有一个表列表,上面有listname和类型,我的验证器希望检查列表名称对于特定类型是唯一的,例如Yii 自定义验证程序创建,yii,Yii,我是Yii框架的新手,所以请任何人帮我解决这个问题 如何为以下验证创建自定义验证程序类, 我有一个表列表,上面有listname和类型,我的验证器希望检查列表名称对于特定类型是唯一的,例如 listName Type test1 1 test2 1 test3 2 当我插入一个新的列表名验证程序时,我想检索列表名和类型,如果它对于特定类型不是唯一的,则提供错误信息。如果您正在寻找,那么创建自定义验证程序方法非常简单 您需要在模型中的rules()方法中添加一个元素(即p
listName Type
test1 1
test2 1
test3 2
当我插入一个新的列表名验证程序时,我想检索列表名和类型,如果它对于特定类型不是唯一的,则提供错误信息。如果您正在寻找,那么创建自定义验证程序方法非常简单
返回数组(
数组('listName','uniqueForType','type')
);代码>
公共函数uniqueForType($field,$params)
{
$filedToCompare=$this->$field;
$fieldtocompare=$this->$params;
//进行检查和比较
如果($wehavenerror){
$this->addError($field,printf(“此列表名已存在于%s类型,$this->$params));
}
}
这应该能奏效。得到了那张信息表。你试过什么?2.你试过CUniqueValidator吗?我允许您设置其他db标准。您可以为
type
field.array('categoryName','ext.Validators.Validator','criteria'=>array('condition'=>)设置条件appId=“.$this->appId.”),我需要像这样的查询“select*from tableName where appId='SomeValue'”,我需要像这样设置查询,但是pbm是$this->appId总是返回空值,所以错误不是由hanks产生的,我已经在我的模型类中这样做了。但是我想通过将类分离为与/framework/validators/CUniqueValidator类类似的验证器类来重用代码,请帮助我如何做到这一点?我引用了这个链接,但我不明白如何获取值,以及如何将类型列值传递给它。哦,好的,我做了很少的研究,并且有很好的文档。用样品很好地解释了这一点。DonRico,让我告诉一个场景,请告诉我如何使用自定义验证器类处理这种情况,当注册新用户时,我们不允许再次获得相同电子邮件id的用户名。如果我没有弄错,您不允许多次使用同一电子邮件注册。这是非常简单和普遍的规则。您只需为电子邮件字段添加一个“唯一”验证器即可。public function rules(){array('email',unique')}
这就是您所需的全部内容。你也应该考虑在DB表中制作电子邮件字段。