Symfony 单独执行每个方法的示例也有其优点。您可以编写此返回$qb=$repository->createQueryBuilder'u'->select$qb->expr->count'u.id'->getQuery->getSingleScalarResult;是
Symfony 单独执行每个方法的示例也有其优点。您可以编写此返回$qb=$repository->createQueryBuilder'u'->select$qb->expr->count'u.id'->getQuery->getSingleScalarResult;是,symfony,doctrine-orm,Symfony,Doctrine Orm,单独执行每个方法的示例也有其优点。您可以编写此返回$qb=$repository->createQueryBuilder'u'->select$qb->expr->count'u.id'->getQuery->getSingleScalarResult;是的,它看起来是一个很好的解决方案,适用于更简单的情况。您可以通过筛选计数的标准,但我没有设法使它适用于按关联筛选关联的标准。请参阅此处的相关帖子: $repository = $em->getRepository('FooBundle:F
单独执行每个方法的示例也有其优点。您可以编写此返回$qb=$repository->createQueryBuilder'u'->select$qb->expr->count'u.id'->getQuery->getSingleScalarResult;是的,它看起来是一个很好的解决方案,适用于更简单的情况。您可以通过筛选计数的标准,但我没有设法使它适用于按关联筛选关联的标准。请参阅此处的相关帖子:
$repository = $em->getRepository('FooBundle:Foo');
$qb = $repository->createQueryBuilder('n')
->where('n.bar = :bar')
->setParameter('bar', $bar);
$query = $qb->getQuery();
//this doesn't work
$totalrows = $query->getResult()->count();
$paginator = new \Doctrine\ORM\Tools\Pagination\Paginator($query);
$totalRows = count($paginator);
return $repository->createQueryBuilder('u')
->select('count(u.id)')
->getQuery()
->getSingleScalarResult();
$qb = $em->createQueryBuilder()
->select('m.id', 'rm.id')
->from('Model', 'm')
->join('m.relatedModels', 'rm')
->groupBy('m.id');
class CountHydrator extends AbstractHydrator
{
const NAME = 'count_hydrator';
const FIELD = 'count';
/**
* {@inheritDoc}
*/
protected function hydrateAllData()
{
return (int)$this->_stmt->fetchColumn(0);
}
}
class CountSqlWalker extends SqlWalker
{
/**
* {@inheritDoc}
*/
public function walkSelectStatement(AST\SelectStatement $AST)
{
return sprintf("SELECT COUNT(*) AS %s FROM (%s) AS t", CountHydrator::FIELD, parent::walkSelectStatement($AST));
}
}
$doctrineConfig->addCustomHydrationMode(CountHydrator::NAME, CountHydrator::class);
// $qb from example above
$countQuery = clone $qb->getQuery();
// Doctrine bug ? Doesn't make a deep copy... (as of "doctrine/orm": "2.4.6")
$countQuery->setParameters($this->getQuery()->getParameters());
// set custom 'hint' stuff
$countQuery->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, CountSqlWalker::class);
$count = $countQuery->getResult(CountHydrator::NAME);
$qb = new QueryBuilder($conn);
$count = $qb->select("count(id)")->from($tableName)->execute()->fetchColumn(0);
//in repository class:
$count = $qb->select('count(p.id)')
->from('Products', 'p')
->getQuery()
->getSingleScalarResult();
return $count;
//in controller class:
$count = $this->em->getRepository('RepositoryBundle')->...
return $count-$offset;
/**
* @return array
*/
public function getCourseCount()
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb
->select('count(course.id)')
->from('CRMPicco\Component\Course\Model\Course', 'course')
;
$query = $qb->getQuery();
return $query->getSingleScalarResult();
}
$query = $this->dm->createQueryBuilder('AppBundle:Items')
->field('isDeleted')->equals(false)
->getQuery()->count();