【问题标题】:Doctrine Email Validation triggers on empty form field空表单字段上的 Doctrine 电子邮件验证触发器
【发布时间】:2011-05-07 00:24:19
【问题描述】:

我不希望表单中的空电子邮件字段触发 Doctrine_Validator_Exception。但是,由于 Doctrine_Validator_Email 使用 "is_null()" 检查空(不存在的)值(和 POST ['email'] 包含一个空字符串),确实如此。

这是正确的吗?有没有简单的方法解决这个问题?

这在尝试将列设置为唯一时也会产生影响(尝试 在列中存储第二个空字符串会触发验证器)。

我错过了什么?

提前致谢, 厄兰·维恩克

(Symfony 1.4.1/Doctrine 1.2)

【问题讨论】:

    标签: validation symfony1 doctrine


    【解决方案1】:

    我在我们的 Doctrine 1.2 应用程序中遇到了同样的问题。就我而言,修复程序最终将此解决方法添加到记录的 merge() 方法中:

        $this->email = trim($this->email);
        if ($this->email == '') {
            $this->email = null;
        }
    

    【讨论】:

      【解决方案2】:

      有几种方法,未​​经测试,但似乎可以一起或单独工作:

      1) $this->validatorSchema['email'] = null;

      2) $this->validatorSchema['email'] = sfValidatorPass();

      3)$this->validatorSchema->setOption('allow_extra_fields', true);

      4) 只需将required 属性设置为false

      $this->widgetSchema['email'] = sfWidgetFormInputText(array('required' => false));
      

      【讨论】:

      • 谢谢,但 sf 验证器不是问题所在。您的示例中似乎还存在一些错误(小部件上的“必需”选项是一个)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      相关资源
      最近更新 更多