/** * {@inheritdoc} */ public function getDataSourceIterator(DatagridInterface $datagrid, array $fields, $firstResult = null, $maxResult = null) { $datagrid->buildPager(); $query = $datagrid->getQuery(); $query->setFirstResult($firstResult); $query->setMaxResults($maxResult); return new DoctrineODMQuerySourceIterator($query instanceof ProxyQuery ? $query->getQuery() : $query, $fields); }
/** * {@inheritdoc} */ public function getDataSourceIterator(DatagridInterface $datagrid, array $fields, $firstResult = null, $maxResult = null) { $datagrid->buildPager(); $query = $datagrid->getQuery(); $query->select('DISTINCT ' . $query->getRootAlias()); $query->setFirstResult($firstResult); $query->setMaxResults($maxResult); if ($query instanceof ProxyQueryInterface) { $query->addOrderBy($query->getSortBy(), $query->getSortOrder()); $query = $query->getQuery(); } return new DoctrineORMQuerySourceIterator($query, $fields); }
/** * @param \Sonata\AdminBundle\Datagrid\DatagridInterface $datagrid * @param array $fields * @param null $firstResult * @param null $maxResult */ public function getDataSourceIterator(DatagridInterface $datagrid, array $fields, $firstResult = null, $maxResult = null) { $datagrid->buildPager(); $query = clone $datagrid->getQuery(); $query->distinct(); $query->setFirstResult($firstResult); $query->setMaxResults($maxResult); return new PropelCollectionSourceIterator($query->execute(), $fields); }