/** * {@inheritdoc} */ public function handle(GridInterface $grid, array $filters = [], array $sorting = [], array $slicing = []) { $repository = $this->repositoryRegistry[$grid->getResource()->getName()]; $dataSourceBuilder = $repository->createDataSourceBuilder($grid->getOptions()); $this->filterer->filter($dataSourceBuilder, $grid, $filters); $this->sorter->sort($dataSourceBuilder, $grid, $sorting); $this->slicer->slice($dataSourceBuilder, $grid, $slicing); return $this->gridViewFactory->create($grid, $dataSourceBuilder); }
/** * {@inheritdoc} */ protected function findChoices(GridInterface $grid, RepositoryInterface $repository, array $choices) { $result = $repository->createQueryBuilderForCollection()->field($repository->getProperty($grid->getResource()->getIdPropertyPath()))->in($choices)->getQuery()->getIterator()->toArray(); return count($result) === count($choices) ? $result : []; }
/** * {@inheritdoc} */ protected function findChoices(GridInterface $grid, RepositoryInterface $repository, array $choices) { $queryBuilder = $repository->createQueryBuilderForCollection(); $result = $queryBuilder->andWhere($queryBuilder->expr()->in($repository->getProperty($grid->getResource()->getIdPropertyPath(), $queryBuilder), ':' . ($placeholder = 'lug_id_' . str_replace('.', '', uniqid(null, true)))))->setParameter($placeholder, $choices)->getQuery()->getResult(); return count($result) === count($choices) ? $result : []; }
/** * @param GridInterface $grid * * @return string */ private function getKey(GridInterface $grid) { return '_lug_grid_filter_' . $grid->getResource()->getName(); }