为什么这个Yii验证器不起作用?

时间:2012-03-28 01:45:08

标签: php yii

您好我正在尝试创建自己的Form验证器,就像默认配置中生成的authenticate中的LoginForm方法一样。

    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字段的验证器)可以工作。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

因为并非所有验证程序都映射到客户端验证程序。

除此之外,我还创建了处理ajax表单验证的代码,并在ajaxValidation中启用了CActiveForm

所以现在一切都很棒。我创建的验证器正在通过ajax验证工作。

答案 1 :(得分:-1)

我有同样的问题,在我的情况下不是启用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”)。