2010-01-18 2 views
1

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

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

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

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

Спасибо заранее, Erland Винка

(Symfony 1.4.1/Doctrine 1.2)

ответ

0

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

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

Спасибо, но валидаторы НФ не проблема. В вашем примере также имеется несколько ошибок (опция «требуется» для одного виджетов). –

1

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

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