setPage($page); $form = $this->getToolbarForm($query); $form->setData($query); $form->submit($request->query->all(), false); if (!$form->isValid()) { $query->resetByFormError($form->getErrors()); } $tags = $repository->getTagCount($query); return $this->render('tags/index.html.twig', [ 'tags' => $tags, 'query' => $query, 'toolbarForm' => $form->createView(), ]); } /** * @Route(path="/{id}/edit", name="tags_edit", methods={"GET", "POST"}) * @Security("is_granted('manage_tag')") */ public function editAction(Tag $tag, TagRepository $repository, Request $request) { $editForm = $this->createForm(TagEditForm::class, $tag, [ 'action' => $this->generateUrl('tags_edit', ['id' => $tag->getId()]), 'method' => 'POST', ]); $editForm->handleRequest($request); if ($editForm->isSubmitted() && $editForm->isValid()) { try { $repository->saveTag($tag); $this->flashSuccess('action.update.success'); return $this->redirectToRoute('tags'); } catch (ORMException $ex) { $this->flashError('action.update.error', ['%reason%' => $ex->getMessage()]); } } return $this->render('tags/edit.html.twig', [ 'tag' => $tag, 'form' => $editForm->createView() ]); } /** * @Route(path="/create", name="tags_create", methods={"GET", "POST"}) * @Security("is_granted('manage_tag')") */ public function createAction(TagRepository $repository, Request $request) { $tag = new Tag(); $editForm = $this->createForm(TagEditForm::class, $tag, [ 'action' => $this->generateUrl('tags_create'), 'method' => 'POST', ]); $editForm->handleRequest($request); if ($editForm->isSubmitted() && $editForm->isValid()) { try { $repository->saveTag($tag); $this->flashSuccess('action.update.success'); return $this->redirectToRoute('tags'); } catch (ORMException $ex) { $this->flashError('action.update.error', ['%reason%' => $ex->getMessage()]); } } return $this->render('tags/edit.html.twig', [ 'tag' => $tag, 'form' => $editForm->createView() ]); } /** * @param TagQuery $query * @return \Symfony\Component\Form\FormInterface */ protected function getToolbarForm(TagQuery $query) { return $this->createForm(TagToolbarForm::class, $query, [ 'action' => $this->generateUrl('tags', [ 'page' => $query->getPage(), ]), 'method' => 'GET', ]); } }