2016-04-09 10 views
0

In einem Formular verwende ich ein EntityType Feld, das die Auswahl mehrerer Elemente aus Element Member ermöglicht. Ich sende die ID eines bestimmten Mitglieds über die Option des Formulars (eine Variable mit dem Namen $selfId) an mein Formular und möchte die query_builder Funktion verwenden, um eine Liste der Mitglieder zurückgeben, wo dieses bestimmte Mitglied an erster Stelle erscheinen würde. Wie könnte ich das erreichen? Ich bin mit Symfony 3.Symfony: Wie platziert man ein bestimmtes Element mit der Option query_builder an erster Stelle?

Ich denke an so etwas wie dieses:

->add('members', EntityType::class, array(
     'required'  => true, 
     'label'   => 'Members', 
     'class'   => 'AppBundle:Member', 
     'multiple'  => true, 
     'query_builder' => function (MemberRepository $er) use ($selfId) { 
           $qb = $er->createQueryBuilder('m'); 
           return $qb 
              ->orderBy('m.id = :selfId') // invented code!!!!!!! 
              ->setParameter('selfId', $selfId) 
              ; 
          } 
     )) 
; 

Antwort

0

Es ist ein Element, das Sie den Code oben Element namens preferred_choices hinzufügen können, tun sollten, was Sie fordern

http://symfony.com/doc/current/reference/forms/types/entity.html#preferred-choices

+0

Danke für Ihre Antwort. Die Option preferred_choices kann helfen, einige Optionen in der ersten Position anzuzeigen **, aber ändert nicht wirklich die Reihenfolge der Optionen, wie ich brauche. Um preferred_choices zu verwenden, sollte ich den Indexwert der Auswahl kennen, die ich in die erste Position setzen möchte, aber ich kenne nur seine Id, da es sich um eine Entity handelt. – Roubi

Verwandte Themen