示例#1
0
 /**
  * {@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);
 }
示例#2
0
 /**
  * {@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 : [];
 }
示例#3
0
 /**
  * {@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 : [];
 }
示例#4
0
 /**
  * @param GridInterface $grid
  *
  * @return string
  */
 private function getKey(GridInterface $grid)
 {
     return '_lug_grid_filter_' . $grid->getResource()->getName();
 }