public function testQueryRemoveOffsetPart() { $q = new Doctrine_Query(); $q->from('User u'); $q->offset(10); $q->removeDqlQueryPart('offset'); $this->assertEqual($q->getSqlQuery(), 'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e WHERE (e.type = 0)'); }
/** * Returns query for count of items. * * @return Doctrine_Query */ protected function getCountQuery() { if ($this->_countQuery == null) { $this->_countQuery = clone $this->_query; $partsToBeRemoved = array('offset', 'limit', 'orderby'); foreach ($partsToBeRemoved as $part) { $this->_countQuery->removeDqlQueryPart($part); $this->_countQuery->removeSqlQueryPart($part); } } return $this->_countQuery; }
/** * Format the value returned from rec_query() into an array radix. * * @param Doctrine_Query $q * @return array $radix */ protected function format_query_radix(Doctrine_Query $q) { $q2 = $q->copy()->select('org_id'); $rs = $q2->fetchArray(); // also select all parent orgs $ids = array(); foreach ($rs as $org) { $parent_ids = Organization::get_org_parents($org['org_id']); $ids = array_merge($ids, $parent_ids); $ids[] = $org['org_id']; } $q->orWhereIn('o.org_id', $ids); $q->removeDqlQueryPart('limit'); // now get the radix $this->_fields['org_parent_id'] = 1; $this->_fields['org_id'] = 1; $radix = parent::format_query_radix($q); // display organizations as a tree return $this->get_tree_data($radix); }
/** * Removes any limit in query * * @return Bvb_Grid_Source_Doctrine */ public function resetLimit() { $this->_query->removeDqlQueryPart('limit'); $this->_query->removeDqlQueryPart('offset'); return $this; }