Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Controller;
- use App\Entity\Histories;
- use App\Interfaces\Childes;
- use App\Interfaces\Ownership;
- use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\Routing\Annotation\Route;
- /**
- * @package App\Controller
- * @Route("/manage/", name="manage_")
- */
- class ManageController extends SecurityController
- {
- /**
- * @param $entity
- *
- * @return \Symfony\Component\HttpFoundation\Response
- *
- * @throws \Exception
- *
- * @Route("list/{entity}", name="list",defaults={"entity"="history"})
- */
- public function listEntity($entity)
- {
- $entity = $this->loader->getEntityData($entity);
- return $this->render($entity['name'].'/list.html.twig',
- ['entityData' => $this->em->getRepository($entity['class'])->getAll($this->getUser())]);
- }
- /**
- * @param Request $request
- * @param $entity
- *
- * @param null $element
- * @param null $master
- *
- * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
- * @throws \Doctrine\ORM\ORMException
- * @throws \Doctrine\ORM\OptimisticLockException
- *
- * @Route("add/{entity}", name="add")
- * @Route("edit/{entity}/{element}", name="edit")
- * @Route("add-to-{master}/new/{entity}/", name="add_to_master")
- *
- */
- public function addEditEntity(Request $request, $entity, $element = null, $master = null)
- {
- $entity = $this->loader->getEntityData($entity);
- $element = $this->em->find($entity['class'],$element);
- $master = (is_null($master)) ? null : $this->em->find($entity['master'],$master);
- $form = $this->createForm($entity['form'],$element);
- $form->handleRequest($request);
- if($form->isSubmitted() && $form->isValid())
- {
- if($element instanceof Ownership && is_null($element->getUser())) $element->setUser($this->getUser());
- if($element instanceof Childes &&!is_null($master) && $element->isNullMaster()) $element->addMaster($master);
- $this->em->save($element);
- $this->addFlash('success',$this->translator->trans($entity['name'].'.success'));
- return $this->redirectToRoute('manage_edit',['entity' => $entity['name'], 'element' => $element->getId() ]);
- }
- return $this->render($entity['name'].'/addEdit.html.twig',
- ['form' => $form->createView(),
- 'element' => $element]);
- }
- /**
- * @param Request $request
- *
- * @return \Symfony\Component\HttpFoundation\RedirectResponse
- *
- * @throws \Doctrine\ORM\ORMException
- * @throws \Exception
- *
- * @Route("delete/{entity}/{element}", name="delete")
- */
- public function deleteEntity(Request $request,$entity,$element)
- {
- $entity = $this->loader->getEntityData($entity);
- $element = $this->em->find($entity['class'],$element);
- $this->em->delete($element,true);
- $this->addFlash('success',$this->translator->trans($entity['name'].'.delete'));
- return $this->redirect($request->headers->get('referer'));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement