嗨,我正在尝试制作我自己的Form验证器,就像在默认配置上生成的LoginForm
中的authenticate
方法一样。
public function rules()
{
return array(
// username and password are required
array('mnemonic, target_reg, source_reg', 'required'),
// rememberMe needs to be a boolean
array('target_reg_indirection, source_reg_indirection', 'boolean'),
array('mnemonic','foo'),
);
}
这是验证器方法:
public function foo($attribute,$params){
$this->addError('mnemonic', 'there was an error, you foo!');
}
它只是不适用于我…注意我是如何添加一条不应该每次都有效的规则的。我只是为了看看它是如何工作的。但我从来没有在我的视图中看到错误消息。默认的验证器(比如检查required
字段的验证器)可以工作。
有什么想法吗?
因为并非所有验证器都映射到客户端验证器。
除此之外,我还创建了处理ajax表单验证的代码,并在CActiveForm
中启用了ajaxValidation
。
所以现在一切都很好。我创建的验证器是通过ajax验证工作的。
我遇到了同样的问题,在我的情况下,不是启用ajaxValidation,而是启用"安全"验证器和其他一些东西。
在这里,我发布了一些帮助我解决问题的读物。希望这能帮助其他有同样问题的人。
- 我读了一些关于"安全"验证器的文章。(http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/)
- 我理解AjaxValidation和ClientValidation之间的区别。(http://www.yiiframework.com/doc/api/1.1/CActiveForm)
- 我创建了自己的验证器类。(在谷歌上搜索"自定义验证yii")