2017-12-22 3 views
-1
class FormType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('a') 
      ->add('b') 
      ->add('c') 
      ->add('d'); 
    } 
    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' =>'entity' 
     )); 
    } 
} 

HTML 양식 필드가없는 경우 :심포니, 양식이 필드를

<form> 
    <input name="a" value="a"> 
    <input name="b" value="b"> 
</form 

나는 형태는 C를 제출하면, D가 null로 설정됩니다. 양식이 필드를 가지고 있지 않은 경우 , 나는 업데이트하지 않는 C와 D :)이

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('a') 
     ->add('b') 
     ->add('c') 
     ->add('d'); 
} 

사용

+0

당신이 그들을 사용하지 않으려는 다음 경우에 왜 당신은'FormType'에 필드를 추가? 어쩌면 당신은 다른 유스 케이스를 가지고 있고 동적으로 필드를 추가하는 것을 고려해야합니까? – dlondero

답변

0

insted이 같은이

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('a') 
     ->add('b') 
     ->add('c', TextType::class , array('mapped' => false)) 
     ->add('d', TextType::class , array('mapped' => false)); 
} 
0

업데이트합니다 buildForm 기능 . The Symfony FormType에서는 기본적으로 모든 필드가 필요합니다.

public function buildForm(FormBuilderInterface $builder, array $options) 
     { 
      $builder 
       ->add('a') 
       ->add('b') 
       ->add('c',TextType::class, ['required' => false,'empty_data' => null]) 
       ->add('d',TextType::class, ['required' => false,'empty_data' => null]); 
     } 

당신이 아니라 널 (NULL)이어야 데이터베이스 C와 D의 개체를 유지하려면