Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
proc
/
212
/
root
/
proc
/
212
/
task
/
212
/
root
/
proc
/
70528
/
cwd
/
src
/
Controller
/
back
/
//proc/212/root/proc/212/task/212/root/proc/70528/cwd/src/Controller/back/ProductPageController.php
<?php namespace App\Controller\back; use App\Entity\Page; use App\Repository\PageRepository; use App\Repository\ProductRepository; use Doctrine\Persistence\ManagerRegistry; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Doctrine\DBAL\Exception\ForeignKeyConstraintViolationException; /** * @Route("/admin") */ class ProductPageController extends AbstractController { /** * @Route("/product/{id}/pages/add/{name}", name="back_product_page_add") */ public function addPagesToProduct($id, $name, ProductRepository $productRepository, ManagerRegistry $doctrine) { $page = new Page(); $product = $productRepository->find($id); $page->setProduct($product); $page->setName($name); $em = $doctrine->getManager(); $em->persist($page); $em->flush(); return $this->json($page->getId()); } /** * @Route("/product/pages/{id}/delete", name="back_product_page_delete") */ public function deletePagesFromProduct($id, PageRepository $pageRepository, ManagerRegistry $doctrine) { $page = $pageRepository->find($id); try { $em = $doctrine->getManager(); $em->remove($page); $em->flush(); } catch (ForeignKeyConstraintViolationException $e) { $doctrine->resetManager(); $page = $pageRepository->find($id); $em = $doctrine->getManager(); $page->setActive(false); $em->persist($page); $em->flush(); return $this->json("Impossible de supprimer la page car elle est utilisé dans une commande. Elle à été archivée, et ne sera visible que sur les anciennes commandes."); } return $this->json("success"); } }