Проверка Doctrine Email запускается в пустом поле формы - PullRequest
1 голос
/ 18 января 2010

Я не хочу, чтобы пустое поле электронной почты в моей форме вызывало Doctrine_Validator_Exception. Но, поскольку Doctrine_Validator_Email использует is_null () для проверки пустых (несуществующих) значений (и POST ['email'] содержит пустую строку), это так.

Это правильно? Есть ли простой способ обойти это?

Это также оказывает влияние при попытке установить столбец как уникальный (при попытке для сохранения второй пустой строки в столбце запускается валидатор).

Чего мне не хватает?

Заранее спасибо, Эрланд Винке

(Symfony 1.4.1 / Doctrine 1.2)

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Я столкнулся с этой же проблемой в нашем приложении Doctrine 1.2. В моем случае исправление добавило этот обходной путь к методу merge() записи:

    $this->email = trim($this->email);
    if ($this->email == '') {
        $this->email = null;
    }
0 голосов
/ 18 января 2010

Есть несколько способов, не проверенных, но, кажется, работают полностью или по отдельности:

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