Bonjour à tous,
Je suis débutant sur Symfony et après avoir suivi quelques tutoriaux, je travaille sur un projet afin de me perfectionner!
Il s'agit d'un gestionnaire d'évènements avec inscriptions des participants avec un back-office. En tant que visiteur, je peux m'inscrire à un ou plusieurs évènements via une select list d'un formulaire bootstrap.
Une fois inscrit, l'administrateur peut accéder à son back-office et voir qui s'est inscrit dans tel ou tel évènement en sélectionnant un évènement précis et d'y consulter la liste.
Mon problème, qui me semble pourtant très bête, est que si l'administrateur décide de supprimer un participant d'un évènement, le participant est supprimé dans la base de donnée et donc de tous les évènements auxquels celui-ci s'est inscrit. Alors que j'aimerais qu'il ne soit supprimé que de l'évènement en question.
Pour moi, je pense que je dois créer une requête dans le fichier repository de mon évènement...
Voici quelques parties du code que je pense être utile.
Mon Entity Participant.php qui possède donc une relation ManyToMany :
Et mon Entity Atelier.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** * @ORM\ManyToMany(targetEntity="App\Entity\Atelier", inversedBy="participants") */ private $workshops;
Et dans l'un de mes Controller, voici la fonction qui supprime le participant de tous les évènements donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 /** * @ORM\ManyToMany(targetEntity="App\Entity\Participant", mappedBy="workshops") */ private $participants;
C'est vraiment au niveau de la requête que je dois créer où je bloque...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 /** * @Route("/admin/delete_participant/{id}", name="delete_participant") */ public function deleteParticipant(EntityManagerInterface $manager, Participant $participant) { $manager->remove($participant); $manager->flush(); $this->addFlash('danger', "Le participant a bien été supprimé"); return $this->redirectToRoute("admin_page", [ 'participant' => $participant, ]); }
Pourriez-vous me donner un petit coup de main s'il vous plaît ?
Merci d'avance!
Partager