Advertisement
Guest User

crud

a guest
Nov 12th, 2018
436
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.25 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Controller;
  4.  
  5.  
  6.  
  7. use App\Entity\Histories;
  8. use App\Interfaces\Childes;
  9. use App\Interfaces\Ownership;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\Routing\Annotation\Route;
  13.  
  14. /**
  15.  * @package App\Controller
  16.  * @Route("/manage/", name="manage_")
  17.  */
  18. class ManageController extends SecurityController
  19. {
  20.     /**
  21.      * @param $entity
  22.      *
  23.      * @return \Symfony\Component\HttpFoundation\Response
  24.      *
  25.      * @throws \Exception
  26.      *
  27.      * @Route("list/{entity}", name="list",defaults={"entity"="history"})
  28.      */
  29.     public function listEntity($entity)
  30.     {
  31.         $entity = $this->loader->getEntityData($entity);
  32.  
  33.  
  34.         return $this->render($entity['name'].'/list.html.twig',
  35.             ['entityData' => $this->em->getRepository($entity['class'])->getAll($this->getUser())]);
  36.     }
  37.  
  38.     /**
  39.      * @param Request $request
  40.      * @param $entity
  41.      *
  42.      * @param null $element
  43.      * @param null $master
  44.      *
  45.      * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
  46.      * @throws \Doctrine\ORM\ORMException
  47.      * @throws \Doctrine\ORM\OptimisticLockException
  48.      *
  49.      * @Route("add/{entity}", name="add")
  50.      * @Route("edit/{entity}/{element}", name="edit")
  51.      * @Route("add-to-{master}/new/{entity}/", name="add_to_master")
  52.      *
  53.      */
  54.     public function addEditEntity(Request $request, $entity, $element = null, $master = null)
  55.     {
  56.         $entity = $this->loader->getEntityData($entity);
  57.         $element = $this->em->find($entity['class'],$element);
  58.  
  59.         $master = (is_null($master)) ? null : $this->em->find($entity['master'],$master);
  60.  
  61.         $form = $this->createForm($entity['form'],$element);
  62.         $form->handleRequest($request);
  63.  
  64.         if($form->isSubmitted() && $form->isValid())
  65.         {
  66.  
  67.             if($element instanceof Ownership && is_null($element->getUser())) $element->setUser($this->getUser());
  68.             if($element instanceof Childes &&!is_null($master) && $element->isNullMaster()) $element->addMaster($master);
  69.  
  70.             $this->em->save($element);
  71.  
  72.             $this->addFlash('success',$this->translator->trans($entity['name'].'.success'));
  73.  
  74.             return $this->redirectToRoute('manage_edit',['entity' => $entity['name'], 'element' => $element->getId() ]);
  75.         }
  76.  
  77.         return $this->render($entity['name'].'/addEdit.html.twig',
  78.             ['form'    => $form->createView(),
  79.                 'element' => $element]);
  80.     }
  81.  
  82.     /**
  83.      * @param Request $request
  84.      *
  85.      * @return \Symfony\Component\HttpFoundation\RedirectResponse
  86.      *
  87.      * @throws \Doctrine\ORM\ORMException
  88.      * @throws \Exception
  89.      *
  90.      * @Route("delete/{entity}/{element}", name="delete")
  91.      */
  92.     public function deleteEntity(Request $request,$entity,$element)
  93.     {
  94.         $entity = $this->loader->getEntityData($entity);
  95.  
  96.         $element = $this->em->find($entity['class'],$element);
  97.  
  98.         $this->em->delete($element,true);
  99.  
  100.         $this->addFlash('success',$this->translator->trans($entity['name'].'.delete'));
  101.  
  102.         return $this->redirect($request->headers->get('referer'));
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement