public queryCount ( ) : integer | ||
return | integer |
public function queryCount()
{
$dsId = $this->getSchema()->getReadSourceId();
$conn = ConnectionManager::getInstance()->getConnection($dsId);
$driver = $conn->createQueryDriver();
$q = clone $this->getCurrentReadQuery();
$q->setSelect('COUNT(distinct m.id)');
// Override current select.
// when selecting count(*), we dont' use groupBys or order by
$q->clearOrderBy();
$q->clearGroupBy();
$arguments = new ArgumentArray();
$sql = $q->toSql($driver, $arguments);
return (int) $conn->prepareAndExecute($sql, $arguments->toArray())->fetchColumn();
}
/** * Create collection pager object from collection. * * @param LazyRecord\BaseCollection collection object. * @return BootstrapRegionPager */ protected function createCollectionPager(BaseCollection $collection) { $page = $this->getCurrentPage(); $pageSize = $this->getCurrentPageSize(); $count = $collection->queryCount(); $collection->page($page, $pageSize); // return new RegionPager( $page, $count, $pageSize ); return new BootstrapRegionPager($page, $count, $pageSize); }