public function listAction(Request $request) { $repo = $this->get('wucdbm_menu_builder.repo.menus'); $filter = new MenuFilter(); $pagination = $filter->getPagination()->enable(); $filterForm = $this->createForm(FilterType::class, $filter); $filter->load($request, $filterForm); $menus = $repo->filter($filter); $data = ['menus' => $menus, 'filter' => $filter, 'pagination' => $pagination, 'filterForm' => $filterForm->createView()]; return $this->render('@WucdbmMenuBuilderClient/Menu/list/list.html.twig', $data); }
public function filter(MenuFilter $filter) { $builder = $this->getQueryBuilder(); if ($filter->getName()) { $builder->andWhere('m.name = :name')->setParameter('name', '%' . $filter->getName() . '%'); } $route = $filter->getRoute(); if ($route instanceof Route) { $builder->andWhere('itemRoute.id = :routeId')->setParameter('routeId', $route->getId()); } return $this->returnFilteredEntities($builder, $filter, 'm.id'); }