Esempio n. 1
0
 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;
 }
Esempio n. 3
0
 /**
  * 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);
 }
Esempio n. 4
0
 /**
  * _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;
 }
Esempio n. 5
0
	/**
	 * _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;
	}