0
我有一個平常的QueryBuilder:主義,setMaxResults,並得到說好的被賦予相同setMaxResults結果的數量
$this->createQueryBuilder('x')->select()->setMaxResults(10);
但實際上我需要的記錄總數過。它是一個paginator事物順便說一句。如何優雅地做到這一點?我是否也應該運行第二個COUNT查詢?
我有一個平常的QueryBuilder:主義,setMaxResults,並得到說好的被賦予相同setMaxResults結果的數量
$this->createQueryBuilder('x')->select()->setMaxResults(10);
但實際上我需要的記錄總數過。它是一個paginator事物順便說一句。如何優雅地做到這一點?我是否也應該運行第二個COUNT查詢?
學說船舶pagination tool。你最好使用它。是的,它執行2或3個查詢(取決於標誌$fetchJoinCollection
)。
use Doctrine\ORM\Tools\Pagination\Paginator;
$query = $this->createQueryBuilder('x')
->select()
->setFirstResult(0)
->setMaxResults(10)
->getQuery();
$paginator = new Paginator($query, $fetchJoinCollection = false);
$totalRecords = $paginator->count();
foreach ($paginator as $entry) {
$entry->getId();
}
不幸的是,是的,你需要兩個查詢 –
或者你可以使用[主義的分頁程序(http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/tutorials/pagination.html )你可以在哪裏訪問 – craigh