/** * {@inheritDoc} */ public function process(DatagridInterface $grid, array $config) { $this->datagrid = $grid; if (isset($config['query'])) { $queryConfig = array_intersect_key($config, array_flip(['query'])); $converter = new YamlConverter(); $this->qb = $converter->parse($queryConfig, $this->em->createQueryBuilder()); } elseif (isset($config['entity']) && isset($config['repository_method'])) { $entity = $config['entity']; $method = $config['repository_method']; $repository = $this->em->getRepository($entity); if (method_exists($repository, $method)) { $qb = $repository->{$method}(); if ($qb instanceof QueryBuilder) { $this->qb = $qb; } else { throw new DatasourceException(sprintf('%s::%s() must return an instance of Doctrine\\ORM\\QueryBuilder, %s given', get_class($repository), $method, is_object($qb) ? get_class($qb) : gettype($qb))); } } else { throw new DatasourceException(sprintf('%s has no method %s', get_class($repository), $method)); } } else { throw new DatasourceException(get_class($this) . ' expects to be configured with query or repository method'); } if (isset($config['hints'])) { $this->queryHints = $config['hints']; } $grid->setDatasource(clone $this); }
/** * {@inheritDoc} */ public function process(DatagridInterface $grid, array $config) { $queryConfig = array_intersect_key($config, array_flip(['query'])); $converter = new YamlConverter(); $this->qb = $converter->parse($queryConfig, $this->em->createQueryBuilder()); $grid->setDatasource(clone $this); }
function it_processes_a_datasource_with_default_query_builder($manager, DatagridInterface $grid, ProductRepository $repository) { $config = ['entity' => 'Product']; $manager->getRepository('Product')->willReturn($repository); $repository->createQueryBuilder([])->shouldBeCalled(); $grid->setDatasource($this)->shouldBeCalled(); $this->process($grid, $config); }
/** * @param DatagridInterface $grid * @param array $config */ public function process(DatagridInterface $grid, array $config) { $this->grid = $grid; if ($pagerParameters = $grid->getParameters()->get('_pager')) { $this->requestPagerParameters = $pagerParameters; } $grid->setDatasource(clone $this); }
/** * @return ResultsObject */ protected function getGridData() { if (null !== $this->gridDataSource) { $this->grid->setDatasource(clone $this->gridDataSource); } else { $this->gridDataSource = clone $this->grid->getDatasource(); } $this->grid->getParameters()->set(PagerInterface::PAGER_ROOT_PARAM, [PagerInterface::PAGE_PARAM => $this->page, PagerInterface::PER_PAGE_PARAM => $this->pageSize]); return $this->grid->getData(); }
/** * {@inheritdoc} */ public function process(DatagridInterface $grid, array $config) { $this->configuration = $config; $queryBuilderConfig = []; if (isset($config['repository_method']) && ($method = $config['repository_method'])) { if (isset($config[ContextConfigurator::REPOSITORY_PARAMETERS_KEY])) { $queryBuilderConfig = $config[ContextConfigurator::REPOSITORY_PARAMETERS_KEY]; } } else { $method = 'createQueryBuilder'; } $this->initializeQueryBuilder($method, $queryBuilderConfig); $grid->setDatasource(clone $this); }
/** * {@inheritdoc} */ public function process(DatagridInterface $grid, array $config) { $this->configuration = $config; if (isset($config['repository_method']) && ($method = $config['repository_method'])) { if (isset($config[ContextConfigurator::REPOSITORY_PARAMETERS_KEY])) { $this->qb = $this->getRepository()->{$method}($config[ContextConfigurator::REPOSITORY_PARAMETERS_KEY]); } else { $this->qb = $this->getRepository()->{$method}(); } } else { $this->qb = $this->getRepository()->createQueryBuilder('o'); } $grid->setDatasource(clone $this); }
/** * {@inheritDoc} */ public function process(DatagridInterface $grid, array $config) { $this->query = new IndexerQuery($this->indexer, $this->indexer->select()); $grid->setDatasource(clone $this); }
/** * {@inheritDoc} */ public function process(DatagridInterface $grid, array $config) { $parameters = $grid->getParameters(); $this->object = $this->routingHelper->getEntity($parameters->get('entityClass'), $parameters->get('entityId')); $grid->setDatasource(clone $this); }
/** * @param DatagridInterface $grid * @param array $config */ public function process(DatagridInterface $grid, array $config) { $grid->setDatasource(clone $this); }