为什么获胜';Yii验证器的工作


Why won't this Yii validator work?

嗨,我正在尝试制作我自己的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,而是启用"安全"验证器和其他一些东西。

在这里,我发布了一些帮助我解决问题的读物。希望这能帮助其他有同样问题的人。

  1. 我读了一些关于"安全"验证器的文章。(http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/)
  2. 我理解AjaxValidation和ClientValidation之间的区别。(http://www.yiiframework.com/doc/api/1.1/CActiveForm)
  3. 我创建了自己的验证器类。(在谷歌上搜索"自定义验证yii")