Bonjour à tous !
j'ai 2 entités : Note et Category telles que Note < many-to-many > Category ; jusque là, tout va bien
mais je voudrais ajouter un ordre de tri d'une note au sein d'une catégorie
après quelques recherches, j'ai donc transformé ça en Note < many-to-one > NoteCategory <one-to-many > Category (l'entité NoteCategory portant l'ordre de tri) ; jusque là, ça va encore à peu près ^^
où ça se corse, c'est au niveau du formulaire d'ajout / modification de note :
comme une note peut être dans plusieurs catégories, j'ai fait un champ de type multi-checkbox pour les catégories :
j'ai à peu près réussi à ajouter une note (et ses x catégories) en créant manuellement la jointure (mais c'est pas très "automagique" ^^)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 $formBuilder ->add('noteCategories', EntityType::class, [ 'label' => 'Catégories', 'class' => Category::class, 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('c') ->andWhere('c.user = :user') ->setParameter('user', $this->security->getUser()); }, 'multiple' => true, 'expanded' => true, 'choice_attr' => function ($val, $key, $index) use ($category) { if (!empty($category) && $index == $category->getId()) { return ['checked' => true]; } else { return ['checked' => false]; } }, 'required' => false ]);
en revanche, l'édition ne fonctionne pas du tout
je veux pouvoir choisir une ou plusieurs catégorie parmi toutes celles de l'utilisateur courant (et non pas seulement celles auxquelles est déjà rattachée la note éditée)
j'ai trouvé plusieurs réponses qui disent d'enlever le 'multiple' => true
oui mais non, sinon, autant fait une bête relation Note < many-to-one > Category
bref, je bloque un peu là...
avez-vous une idée géniale (à part revoir mon modèle de données) ?
merci d'avance !
Partager