Récupérer l'id dans un path

Par newdev-creator, il y a 3 ans


Les bases HTML/CSS

Bonjour,

Dans un path je cherche à récupérer l'id d'une donnée qui serait en dehors d'une boucle.

Sur ma vue, je cherche à supprimer une relation entre l'entité Publicity et Department (ManyToMany). Pour ce faire, je cherche à pointer sur l'id de chacun d'entre eux.

Sauf que je boucle sur les données de Department. Donc pour son id, pas de problème, mais pour Publicity ça me semble impossible.

Extrait de mon twig

<tbody> {% for department in publicity.department %} <tr> <td>{{ department.name }}</td> <td>{{ department.postalCode }}</td> <td class="text-center"> <form class="d-inline" method="post" action="{{ path('admin_publicity_departments_delete', {# Biensur, impossible de récupérer publicity.id de cette façon #} {'publicity': department.publicity.id}, {'department': department.id}) }}" onsubmit="return confirm('Êtes-vous vraiment sûr de vouloir effacer cette ressource ?');"> <button class="btn btn-danger"><i class="icon-bin"></i></button> </form> </td> </tr> {% endfor %} </tbody>

Mon controller de la Vue pour Publicity

#[Route('/show/{id}', name: 'admin_publicity_show', methods: ['GET'])] public function show(Publicity $publicity): Response { return $this->render('admin/publicity/show.html.twig', [ 'publicity' => $publicity, ]); }

Mon controller pour l'action de delete un Department

#[Route('/delete/publicity/{publicity}/department/{department}', name: 'admin_publicity_departments_delete', methods: ['DELETE'])] public function delete( Request $request, EntityManagerInterface $entityManager, Publicity $publicity, Department $department ): Response { $publicity->removeDepartment($department); $entityManager->flush(); $this->addFlash('success', 'Le département a bien été supprimé'); return $this->redirectToRoute('admin_publicity_show', ['id' => $publicity->getId()], Response::HTTP_SEE_OTHER); }

S'il manque des infos n'hésitez pas, je ne suis pas encore très bien habitué à expliquer mes problèmes par écris :P

2 réponses

newdev-creator, il y a 3 ans

Bonjour,

J'ai compris, le problème venait de la manière dont je l'ai écrite:

action="{{ path('admin_publicity_departments_delete',{'publicity': publicity.id, 'department': department.id}) }}"

Ainsi, ça marche.

gillesr, il y a 3 ans

Bonjour,

puisque publicity est déja passé à ton template, tu dois pouvoir récupérer son id en faisant simplement publicity.id