Bonjours, j'ai réaliser un petit projet , et je n'arrive pas a faire un formulaire qui va récupéré la liste des chef d’équipe qui un est un champ présent dans mes 2 base de donne horaire poste,
j'ai fait une requête sur les 2 table avec une jointure je souhaite tout récupéré par le champs chef d’équipe avec un bouton déroulant sur l'interface voici mon code aider moi s'il vous plaie ;
controleurentity
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 ** * @Route("/poste") */ class PosteController extends Controller { /** * @Route("/", name="poste_index", methods={"GET","POST"}) * @param PosteRepository $posteRepository * @return Response */ public function index(PosteRepository $posteRepository): Response { return $this->render('poste/index.html.twig', [ 'postes' => $posteRepository->findAll(), ]); } /** * @Route("/", name="index_2", methods={"GET","POST"}) * @param Request $resquest * @param PosteRepository $posteRepository * @return Response */ public function index_2 (Request $resquest, PosteRepository $posteRepository): Response { { $poste= new Poste(); // creation du formulaire $form = $this->createForm(PosteType::class, $poste, array( // Il n'est pas mappé if ($form->isSubmitted() && $form->isValid()) { // Requête recupére la liste d'event campus $postes = $posteRepository->filter($this->$form->getChefEquipe('chef_equipe')->getData()); // On redirige vers la vue return $this->render('poste/filtreChef.html.twig', ['postes' => $postes, 'form' => $form->createView()]); } return $this->render('poste/filtreChef.html.twig', ['postes' => $posteRepository, 'form' => $form->createView()]); } }repository
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 /** * @ORM\Column(type="string", length=255) */ private $chef_equipe; public function __construct() { $this->nom_prenom=new ArrayCollection(); $this->chef_equipe = new ArrayCollection(); $this->equipe =new ArrayCollection(); }
form
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 public function FindByChef($chef_equipe) { // Requete avec jointure pour récupérer les employé par chef d'equipe $dql = 'SELECT p FROM App\Entity\Poste p INNER JOIN App\Entity\Horaire AS h WITH p.nom_prenom = h.nom_prenom where p.chef_equipe= :value order by p.nom_prenom '; var_dump($dql); return $this->getEntityManager() ->createQuery($dql) ->setParameter('chef_equipe', $this->) ->getResult(); }
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
24
25
26
27
28
29 public function buildForm(FormBuilderInterface $builder, array $options ) { // $builder->add('poste', PosteType::class, array([ 'class' => Poste::class, //Requete avec le query builder 'query_builder' => function (PosteRepository $er) use ($options) { return $er->FindByChef( $options['chef_equipe'] ) ->orderBy('p.nom_prenom', 'ASC'); }, 'choice_label' => 'chef_equipe',])) ->add('nom_prenom') ->add('lundi') ->add('mardi') ->add('mercredi') ->add('jeudi') ->add('vendredi') ->add('samedi') ->add('dimanche') ->add('chef_equipe') ->add('equipe'); $builder->add('submit', SubmitType::class, ['label' => 'Rechercher', 'attr' => ['class' => 'hollow button secondary']]); }
Partager