Php 原则2-通过存储库使用限制时获取总计
我不熟悉该理论,在Php 原则2-通过存储库使用限制时获取总计,php,doctrine-orm,doctrine,limit,Php,Doctrine Orm,Doctrine,Limit,我不熟悉该理论,在EntityRepository::matching方法中使用带标准的limit(通过setMaxResults函数)时,我就是找不到一种方法来获得结果的总数 在我的存储库中(不是EntityRepository的扩展),我使用了以下代码(我知道这不是最佳代码,它只是用来学习教义): 现在让我们假设标准的定义如下: $query = Criteria::create(); $query->where(Criteria::expr()->contains('usern
EntityRepository::matching
方法中使用带标准的limit
(通过setMaxResults
函数)时,我就是找不到一种方法来获得结果的总数
在我的存储库中(不是EntityRepository的扩展),我使用了以下代码(我知道这不是最佳代码,它只是用来学习教义):
现在让我们假设标准的定义如下:
$query = Criteria::create();
$query->where(Criteria::expr()->contains('username', 'ron'));
$query->setMaxResults(10);
事实上,有超过10个用户与之匹配
如何获取符合条件的用户总数?如果将maxResults
设置为10,则得到10个结果;)
为什么不调用getAll()
以获取所有结果,然后应用MaxResults
//search for Ron's
$query = Criteria::create();
$query->where(Criteria::expr()->contains('username', 'ron'));
//check how many Ron's your database can find
$count = $repo->getAll($query)->count();
//get the first 10 records
$query->setMaxResults(10);
$users = $repo->getAll($query);
我曾尝试在单个查询中执行此操作,但我猜COUNT(*)作为第一个查询(没有限制)的原则足够快,不会产生很大的“开销”影响。谢谢:)
//search for Ron's
$query = Criteria::create();
$query->where(Criteria::expr()->contains('username', 'ron'));
//check how many Ron's your database can find
$count = $repo->getAll($query)->count();
//get the first 10 records
$query->setMaxResults(10);
$users = $repo->getAll($query);