Bonjour à tou.te.s,
Je voudrais faire une petite appli pour affecter des aménagements à des élèves. Par exemple : Autoriser l'ordinateur
Lorsque l'enseignant clique sur le détail de l'élève il doit voir tous les aménagements rangés par description descendante or par défaut c'est rangé par id et je n'ai pas trouvé de filtre Twig pour remédier à cela.
De même les items (aménagements) sont bien rangés en descendant dans l'index car j'ai configuré le Repository en conséquence mais par contre ils sont rangés par id dans le select.

Vue Twig show élève, je n'ai pas trouvé de filtre (filtrage sur array seulement)

        <ul>
          {% for item in eleve.item %}
            <li> {{ item.description}} </li>
          {% endfor %}
        </ul>

Ce que je veux

Je voudrais donc :

  • que les items soient rangés par nom descendant dans la vue show
  • que les items soient rangés par nom descendant dans le select de edit eleve
    Quelqu'un peut-il me donner des indications pour obtenir ce résultat ?
    Merci par avance

4 réponses


bidule
Réponse acceptée

Hello,

Alors c'est ultra compliqué ;)

Dans ton Entity il suffit d'ajouter "@ORM\OrderBy({"nomVariable" = "ordre (ASC ou DESC)"})"

/**
 * @ORM\OneToMany(targetEntity=SousCategories::class, mappedBy="Categorie")
 * @ORM\OrderBy({"NomSousCategorie" = "ASC"})
 */
private $sousCategories;
bidule
Réponse acceptée

C'est un peu comme dans ton Repository mais dans ton form il faut ajouter un query_builder a ton item "amenagement" avec un orderBy (dans mon exemple j'ai aussi ajouter les utilisateurs actif)

    ->add('Conseiller', EntityType::class, [
                    'placeholder' => 'Séléctionnez un conseiller',
                    'class' => User::class,
                    'query_builder' => function(EntityRepository $er){
                        return $er->createQueryBuilder('c')
                            ->andWhere('c.Actif = true')
                            ->orderBy('c.Nom', 'ASC')
                            ;
                    }
                ])
Antton
Auteur

Merci beaucoup cela fonctionne parfaitement pour la vue. As-tu une idée pour le Select2 ?

Antton
Auteur

Super, ça fonctionne :). J'ai juste rajouté le 'multiple' => true, pour avoir des multi-sélections. MERCI infiniment pour ton soutien :)

            ->add('Item', EntityType::class, [
                'class' => Item::class,
                'multiple' => true,
                'query_builder' => function(EntityRepository $er){
                    return $er->createQueryBuilder('i')
                        ->orderBy('i.description', 'DESC')
                        ;
                }
            ])