public function testTicket() { $q = new Doctrine_Query(); // simple query with deep relations $q->addSelect('Resume.id, Level.id, Level.label')->from('ticket384_Resume Resume')->leftJoin('Resume.KnownLanguages KnownLanguages')->leftJoin('KnownLanguages.Level Level')->leftJoin('KnownLanguages.Language Language'); try { // get the wrong resultset $aResult = $q->fetchArray(); $this->fail(); } catch (Doctrine_Query_Exception $e) { $this->pass(); } $q->free(); // now correct // we have to select at least KnownLanguages.id in order to get the Levels, // which are only reachable through the KnownLanguages, hydrated properly. $q = new Doctrine_Query(); $q->addSelect('Resume.id, Level.id, Level.label, KnownLanguages.id')->from('ticket384_Resume Resume')->leftJoin('Resume.KnownLanguages KnownLanguages')->leftJoin('KnownLanguages.Level Level')->leftJoin('KnownLanguages.Language Language'); $aResult = $q->fetchArray(); // should be setted $bSuccess = isset($aResult[0]['KnownLanguages'][0]['Level']); $this->assertTrue($bSuccess); if (!$bSuccess) { $this->fail('fetchArray doesnt hydrate nested child relations, if parent doesnt have a column selected'); } }
public function fetchArray($params = array()) { $breadcrumb = $this->getBreadcrumb(); $result = parent::fetchArray($params); $this->restoreBreadcrumb($breadcrumb); return $result; }
/** * Test the existence expected indexes */ public function testTicket() { $q = new Doctrine_Query(); // simple query with deep relations $q->addSelect('Resume.id, Person.id, Person.name, KnownLanguages.id, Level.label, Language.label')->from('ticket912_Resume Resume')->leftJoin('Resume.Person Person')->leftJoin('Resume.KnownLanguages KnownLanguages')->leftJoin('KnownLanguages.Level Level')->leftJoin('KnownLanguages.Language Language'); $aResult = $q->fetchArray(); // should be setted.. $issetLevel = isset($aResult[0]['KnownLanguages'][0]['Level']); $issetLanguage = isset($aResult[0]['KnownLanguages'][0]['Language']); $this->assertTrue($issetLevel); $this->assertTrue($issetLanguage); }
/** * _authenticateQuerySelect() - This method accepts a Doctrine_Query object and * performs a query against the database with that object. * * @param Doctrine_Query $dbSelect * @throws Zend_Auth_Adapter_Exception - when a invalid select object is encoutered * @return array */ protected function _authenticateQuerySelect(Doctrine_Query $dbSelect) { try { $resultIdentities = $dbSelect->fetchArray(); } catch (Exception $e) { /** * @see Zend_Auth_Adapter_Exception */ require_once 'Zend/Auth/Adapter/Exception.php'; throw new Zend_Auth_Adapter_Exception('The supplied parameters to Zend_Auth_Adapter_Doctrine_Record failed to ' . 'produce a valid sql statement, please check table and column names ' . 'for validity.'); } return $resultIdentities; }
/** * _authenticateQuerySelect() - This method accepts a Zend_Db_Select object and * performs a query against the database with that object. * * @param Doctrine_Query $query * @throws Zend_Auth_Adapter_Exception - when an invalid select * object is encountered * @return array */ protected function _authenticateQuerySelect(Doctrine_Query $query) { // Run optional treatment before passing in credential to the query $credential = $this->getTreatedCredential(); try { $resultIdentities = $query->fetchArray(array(':credential' => $credential)); } catch (Exception $e) { /** * @see Zend_Auth_Adapter_Exception */ require_once 'Zend/Auth/Adapter/Exception.php'; throw new Zend_Auth_Adapter_Exception('The supplied parameters to Void_Auth_Adapter_Doctrine failed to ' . 'produce a valid SQL statement, please check table and column names ' . 'for validity.', 0, $e); } return $resultIdentities; }