2010-01-18 79 views
1

我不希望我的表單中的空白電子郵件域觸發 Doctrine_Validator_Exception。但是,由於Doctrine_Validator_Email使用 「is_null()」來檢查空(不存在)值(並且POST ['email']包含空字符串),因此它會這樣做。Doctrine電子郵件驗證觸發器在空的表單域

這是正確的嗎?有沒有簡單的方法呢?

當嘗試將列設置爲唯一列表時(嘗試 在列中存儲第二個空字符串將觸發驗證程序)時,這也會產生影響。

我錯過了什麼?

由於提前, 厄蘭Wiencke

(Symfony的1.4.1 /學說1.2)

回答

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

謝謝,但sf驗證器不是問題。在你的例子中,似乎也有一些錯誤(一個小部件上的'required'選項是一個)。 – 2010-01-19 08:03:44

1

我碰到了同樣的問題在我們的學說1.2的應用程序。在我的情況下,該修復最終將此解決方法添加到記錄的merge()方法:

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