Bonjour à tous, je vous explique mon besoin :
Je souhaite créer une application qui filtre / recherche des consultants en fonction de leur compétences.
J'ai 4 entités dont une entité de jointure qui s'apelle Jointure, qui est en ManyToOne vers Skill.php (liste des compétences) , Answer.php ( liste des userEmail ) et Level ( liste des level).
Petit schéma de mes relations :
Nom : schema.PNG
Affichages : 433
Taille : 43,4 Ko
Voici un aperçu de ma table Jointure ( lien en ManyToOne vers les listes de compétences, level , et userEmail )
Nom : jtt.PNG
Affichages : 464
Taille : 21,5 Ko

Jusqu'ici j'affiche bien la liste de mes consultants et leurs compétences / mail / niveaux associés comme ceci :

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
23
 
    /**
     * @Route("/", name="home")
     */
    public function index(Request $request)
    {
        $AnswerRepository = $this->getDoctrine()->getRepository(Answer::class);
        $answers = $AnswerRepository->findAll();
        $this->em->flush();
 
// ICI JE BIDOUILLE je ne sais pas comment faire
        $search = new Answer();
        $form = $this->createForm(AnswerSearchType::class, $search);
        $form->handleRequest($request);
 
 
        return $this->render('pages/home.html.twig', [
            'controller_name' => 'HomeController',
            'answers' => $answers,
            'form' => $form->createView()
        ]);
    }
}
et dans ma vue Twig :
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
 
<div class="container">
  <h2>Tous les consultants</h2>
  {% for answer in answers %}
  <div class="card">
    <div class="card-header">Email : {{ answer.UserEmail }}</div>
    <div class="card-body">Compétences :<br>
      {% for jointure in answer.jointures %}
      <p>{{jointure.level.label}} la compétence {{ jointure.skill.label }}</p>
      {% endfor %}
    </div>
    <div class="card-footer">Formulaire envoyé le : {{ answer.Date|date("d/m/Y") }} </div> 
  </div><br>
  {% endfor %}
</div>
Cela fonctionne parfaitement, dorénavant je souhaite créer un bouton dropdown qui contient la liste de toutes les compétences présentes dans (Skill.label) et une fois le submit cliqué, faire apparaître la liste des Answer.UserEmail qui ont ce skill.label.

J'ai lu la doc concernant les forms : https://symfony.com/doc/current/forms.html
et les entityTpe : https://symfony.com/doc/current/refe...es/entity.html

J'ai créé un formulaire en ligne de commande "php bin/console make:form" et l'ai relié à mon entité Answer, peut-être que j'aurai du l'a relié à mon entity Skill ?
car du coup mon form dans twig ne correspond pas à mes skill.label :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<div class="jumbotron">
  <div class="container">
    {{ form_start(form) }}
    {{ form_end(form) }}
  </div>
</div>
J'ai bien compris qu'il faut basé mon formulaire sur l'entité Skill, mais ensuite ? Pouvez-vous m'éclaircir à ce sujet svp ?