public function listAction(Request $request) { $repo = $this->get('wucdbm_banner.repo.banners'); $filter = new BannerFilter(); $pagination = $filter->getPagination()->enable(); $filterForm = $this->createForm(BannerFilterType::class, $filter); $filter->load($request, $filterForm); $banners = $repo->filter($filter); $data = ['banners' => $banners, 'filter' => $filter, 'pagination' => $pagination, 'filterForm' => $filterForm->createView()]; return $this->render('@WucdbmBanner/Banner/list.html.twig', $data); }
public function filter(BannerFilter $filter) { $builder = $this->createQueryBuilder('banners')->select('banners'); if ($filter->getId()) { $builder->andWhere('banners.id = :id')->setParameter('id', $filter->getId()); } if ($filter->getName()) { $builder->andWhere('banners.name LIKE :name'); $builder->setParameter('name', '%' . $filter->getName() . '%'); } if (null !== $filter->getIsActive()) { $builder->andWhere('banners.isActive = :isActive'); $builder->setParameter('isActive', $filter->getIsActive()); } return $this->returnFilteredEntities($builder, $filter, 'banners.id'); }