在空表单字段上触发Doctrine Email Validation

时间:2010-01-18 13:21:05

标签: validation symfony1 doctrine

我不希望表单中的空电子邮件字段触发 Doctrine_Validator_Exception。但是,自Doctrine_Validator_Email使用以来 “is_null()”检查空(不存在)值(以及POST ['email']包含空字符串),确实如此。

这是对的吗?有一个简单的方法吗?

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

我错过了什么?

提前致谢, Erland Wiencke

(Symfony 1.4.1 / Doctrine 1.2)

2 个答案:

答案 0 :(得分:1)

我在Doctrine 1.2应用程序中遇到了同样的问题。在我的情况下,修复程序最终将此变通方法添加到记录的merge()方法:

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

答案 1 :(得分:0)

有几种方法,未​​经测试,但似乎全部或分开工作:

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));