public function count(Select $select) { $select->reset('limit'); $select->reset('offset'); $select->reset('order'); $field = $select->getZendSelect()->getRawState('columns')[0]; $select->getZendSelect()->columns(array('count' => new \Zend\Db\Sql\Expression("COUNT({$field})"))); $resultSet = $this->selectMany($select); if (empty($resultSet)) { return 0; } if (count($resultSet) > 1) { return count($resultSet); } return $resultSet[0]['count']; }