2016-05-03 4 views
2

ich ein Formular mit einem Feld vom Typ EntityType habe:Symfony Formular EntityType, kundenspezifische Daten Auswahl hinzufügen

$builder->add(
      'contacts', 
      EntityType::class, 
      [ 
       'label'   => 'Recipient', 
       'required'  => false, 
       'expanded'  => true, 
       'multiple'  => true, 
       'class'   => 'MyApp\Entity\Contact', 
       'choice_label' => 'name', 
       'query_builder' => function (EntityRepository $er) { 

        return $er->createQueryBuilder('c') 

       }, 
       'group_by'  => function (Contact $contact, $key, $index) { 
        return $contact->getClient()->getName(); 
       }, 
      ] 
     ); 

Wie Sie sehen können, das Formular zeigt Checkbox mit der Bezeichnung Contact-> getName().

Alles geht nach rechts, zeigt das Formular jedes Kontrollkästchen wie:

<input id="id_checkbox" type="checkbox" /> 
<label for="id_checkbox">name</label> 

nun für jede Option würde ich zusätzliche Daten wie die E-Mail-Adresse hinzufügen. Ich möchte, dass das Kontrollkästchen wie folgt angezeigt wird:

<input id="id_checkbox" type="checkbox" /> 
<label for="id_checkbox"><span title="contact_email">contact_name</span></label> 

Wie kann ich die E-Mail-Daten an die Vorlage (den Zweigblock) übergeben?

Antwort

1

finden Sie in der Dokumentation für choice_label:

$builder->add(
    'contacts', 
    EntityType::class, 
    [ 
     'label'   => 'Recipient', 
     'required'  => false, 
     'expanded'  => true, 
     'multiple'  => true, 
     'class'   => 'MyApp\Entity\Contact', 
     'choice_label' => function ($contact) { 
      return sprintf('%s (%s)', $contact->getName(), $contact->getEmail()); 
     }, 
     // ... 
    ] 
); 
+0

kann ich mit Attributen zu tun: http://symfony.com/doc/current/reference/forms/types/entity.html#choice-label

Ihre geänderten Code so etwas wie möchte? – bluppfisk

+1

Ja, mit allem. – Jonny