Requirement::DIGITS], methods: ['POST'])] public function add(Request $request, Book $book, EntityManagerInterface $entityManager): Response { $form = $this->createForm(AddLabelType::class); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); $book->addLabel($data['label'], $data['type']); $entityManager->flush(); } else { $this->addFlash('error', 'action_rejected'); } return $this->redirectToRoute('book_show', ['id' => $book->getId()]); } #[Route('/label/{id}/remove', name: 'label_remove', requirements: ['id' => Requirement::DIGITS], methods: ['POST'])] public function remove(Request $request, Label $label, EntityManagerInterface $entityManager): Response { $book = $label->getBook(); if ($this->isCsrfTokenValid('remove-label' . $label->getId(), $request->getPayload()->getString('_token'))) { $book->removeLabel($label); $entityManager->flush(); } else { $this->addFlash('error', 'action_rejected'); } return $this->redirectToRoute('book_show', ['id' => $book->getId()]); } }