2016-05-14 5 views

Antwort

0

Dies ist ein bekanntes Problem in Symfony finden https://github.com/symfony/symfony/issues/5136 @Bernhard Schussek erklärt den Grund:.

ich denke, das Problem hier ist, dass choices enthält eine sortierte Array und preferred_choices Picks Werte aus th bei Array, die ursprüngliche Reihenfolge beibehalten.

So ist es nicht query_builder, die tatsächlich bricht die Bestellung. Offenbar sind die preferred_choicesimmer in der gleichen Reihenfolge wie die gesamte Auswahlliste.

Lösung: In Ihrer Formtype, eine Hilfsspalte kümmern sich um die Bestellung innerhalb der bevorzugten Auswahl hinzufügen:

$qb = function (EntityRepository $er) 
{ 
    return $er->createQueryBuilder('a') 
     ->addSelect('(CASE WHEN a.name=\'Whatever\' then 1 ELSE 2 END) AS HIDDEN tmp') // HIDDEN is important! 
     ->addOrderBy('tmp', 'ASC')->addOrderBy('a.name', 'ASC'); 
}; 

Dann:

->add('field', EntityType::class, array('query_builder'=>$qb, ...) 
Verwandte Themen