2012-12-08 55 views
0

我有一個簡單的用戶註冊表單,其中包含「接受條款」複選框。我已將所有字段設置爲error_bubbling = false,但複選框的錯誤呈現在form_errors(form)部分中。Symfony2:複選框字段錯誤始終呈現爲error_bubbling = true

這裏是我的實體:

class User implements UserInterface, \Serializable, EquatableInterface 
{ 
    /** 
    * @ORM\Column(type="boolean") 
    * @Assert\Type("bool") 
    * @Assert\NotBlank(groups={"Registration"}) 
    */ 
    private $isAcceptingTOS; 
    .... 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'password_required' => true, 
      'validation_groups' => array('Registration', 'Default'), 
     )); 
    } 

} 

我的表單類型:

class RegistrationType extends AbstractType 
{ 
    $builder 
    ->add('acceptingTOS', 'checkbox', array(
     'error_bubbling' => false, 
    )), 
    .... 
} 

而且我的模板

<form action="{{ path('registration_create') }}" method="post" {{ form_enctype(form) }}> 

    {{ form_errors(form) }} 

    {{ form_widget(form.acceptingTOS) }} 
    {{ form_label(form.acceptingTOS) }} 
    {{ form_errors(form.acceptingTOS) }} 

    {{ form_rest(form) }} 

    <input type="submit" /> 
</form> 

任何提示?

+0

我不明白你的問題,你想用{{form_errors(form.acceptingTOS)}}而不是{{form_errors(form)}}來顯示錯誤嗎? – Sybio

+0

是的,我想在form_errors(form.acceptingTOS)中顯示錯誤。靠近領域,而不是形式錯誤。 – huzi

+0

好的,你可以告訴我們你的RegistrationType的setDefaultOptions()方法嗎? – Sybio

回答

0

我發現了錯誤。

我必須使用isAcceptingTOS而不是在表單類型和模板中接受TOS。