getRepository($this->entity)->find($id); return $this->render($this->render.'home.html.twig', [ 'useheader' => false, 'usemenu' => true, 'usesidebar' => false, $this->data => $data, ]); } public function list(ManagerRegistry $em) { // Récupérer les blogtypes $datas = $em->getRepository($this->entity)->findAll(); return $this->render($this->render.'list.html.twig', [ $this->data.'s' => $datas, 'useheader' => true, 'usesidebar' => true, ]); } public function submit(Request $request, ManagerRegistry $em) { // Initialisation de l'enregistrement $data = new Entity(); // Création du formulaire $form = $this->createForm(Form::class, $data, ['mode' => 'submit']); // Récupération des data du formulaire $form->handleRequest($request); // Sur erreur $this->getErrorForm(null, $form, $request, $data, 'submit'); // Sur validation if ($form->get('submit')->isClicked() && $form->isValid()) { $data = $form->getData(); $em->getManager()->persist($data); $em->getManager()->flush(); // Retour à la liste return $this->redirectToRoute($this->route); } // Affichage du formulaire return $this->render($this->render.'edit.html.twig', [ 'useheader' => true, 'usesidebar' => true, $this->data => $data, 'mode' => 'submit', 'form' => $form->createView(), ]); } public function update($id, Request $request, ManagerRegistry $em) { // Initialisation de l'enregistrement $data = $em->getRepository($this->entity)->find($id); // Création du formulaire $form = $this->createForm(Form::class, $data, ['mode' => 'update']); // Récupération des data du formulaire $form->handleRequest($request); // Sur erreur $this->getErrorForm(null, $form, $request, $data, 'update'); // Sur validation if ($form->get('submit')->isClicked() && $form->isValid()) { $data = $form->getData(); $em->getManager()->flush(); // Retour à la liste return $this->redirectToRoute($this->route); } // Affichage du formulaire return $this->render($this->render.'edit.html.twig', [ 'useheader' => true, 'usesidebar' => true, $this->data => $data, 'mode' => 'update', 'form' => $form->createView(), ]); } public function delete($id, Request $request, ManagerRegistry $em) { // Initialisation de l'enregistrement $data = $em->getRepository($this->entity)->find($id); try { $em->getManager()->remove($data); $em->getManager()->flush(); } catch (\Exception $e) { $request->getSession()->getFlashBag()->add('error', $e->getMessage()); return $this->redirectToRoute($this->route.'_update', ['id' => $id]); } return $this->redirectToRoute($this->route); } public function upload() { return $this->render($this->render.'upload.html.twig'); } public function select(Request $request, ManagerRegistry $em) { $output = []; $page_limit = $request->query->get('page_limit'); $q = $request->query->get('q'); $qb = $em->getManager()->createQueryBuilder(); $qb->select('table')->from($this->entity, 'table') ->where('table.name LIKE :value') ->setParameter('value', '%'.$q.'%') ->orderBy('table.name'); $datas = $qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult(); foreach ($datas as $data) { array_push($output, ['id' => $data->getId(), 'text' => $data->getName()]); } $ret_string['results'] = $output; return new JsonResponse($ret_string); } protected function getErrorForm($id, $form, $request, $data, $mode) { if ($form->get('submit')->isClicked() && 'delete' == $mode) { } if ($form->get('submit')->isClicked() && 'submit' == $mode) { } if ($form->get('submit')->isClicked() && !$form->isValid()) { $this->get('session')->getFlashBag()->clear(); $errors = $form->getErrors(); foreach ($errors as $error) { $request->getSession()->getFlashBag()->add('error', $error->getMessage()); } } } }