2017-12-22 4 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 Formularfeld hat:symfony, wenn das Formular nicht dieses Feld

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

Wenn ich das Formular, das c, d ist auf null gesetzt. Wenn das Formular nicht dieses Feld hat, will ich nicht c und d aktualisieren :)

+0

Warum wenn dann wollen Sie nicht, sie zu benutzen? Vielleicht haben Sie verschiedene Anwendungsfälle und sollten die Felder dynamisch hinzufügen? – dlondero

Antwort

0

insted dieser

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

Verwendung dieses

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

Aktualisieren Sie Ihre buildForm Funktion wie diese . In Symfony FormType sind standardmäßig alle Felder erforderlich.

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]); 
     } 

Wenn Sie Sie Hinzufügen von Feldern auf die `FormType` anhalten möchte, muss die Einheit in Datenbank c und d sein nullable sowie

Verwandte Themen