2012-04-20 53 views
0

我是Symfony的新手,遇到以下問題。 我想生成一個沒有類的表單。 我想在一個字段上添加一個Blank()驗證器。 見下文。Symfony 2.0驗證程序,空白()不起作用

class searchPropertyType extends AbstractType 
{ 
    public function getDefaultOptions(array $options) 
    { 
     $collectionConstraint = new Collection(array(
      'keywords' => new blank() 
     )); 

     return array('validation_constraint' => $collectionConstraint); 
    } 


    public function buildForm(FormBuilder $builder, array $options) 
    {  
     $builder 
      ->add('keywords') 
      ->add('neighborhood') 
      ->add('price_min') 
      ->add('price_max') 
      ->add('type') 
      ->add('date_from' , 'date') 
      ->add('date_to' , 'date') 
     ; 


    } 

    public function getName() 
    { 
     return 'searchProperty'; 
    } 
} 

的形式顯示正常,但是,我仍然無法發送的形式,我得到了一個HTML5警告說,我必須填寫此字段。

任何想法?我一整天都在努力,這讓我瘋狂。

太感謝你了,如果你有時間幫;-)

回答

0

要禁用HTML5客戶端驗證添加'required' => falsegetDefaultOptions

public function getDefaultOptions(array $options) 
    { 
     $collectionConstraint = new Collection(array(
      'keywords' => new blank() 
     )); 

     return array(
      'validation_constraint' => $collectionConstraint, 
      'required' => false 
     ); 
    } 
+0

非常感謝!完美的作品 – 123pierre 2012-04-20 14:17:30

+0

@ 123pierre歡迎您,我很樂意提供幫助。 – gremo 2012-04-20 14:19:24

0
public function buildForm(FormBuilder $builder, array $options) { 
     $builder 

       ->add('neighborhood','text',array('required' => false,)) 
       ->add('price_min','text',array('required' => false,)) 
       ->add('date_from', 'date', array('widget' => 'single_text', 'format' => 'dd MMM yyyy', 'required' => false)) 
      ); 
    } 

添加required=>false

希望這幫助。

+0

我可能是錯的,但不需要重複'required'選項,因爲它在'getDefaultOptions'中指定時被繼承。 – gremo 2012-04-20 13:50:03