當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Query::getHydrationMode方法代碼示例

本文整理匯總了PHP中Doctrine\ORM\Query::getHydrationMode方法的典型用法代碼示例。如果您正苦於以下問題:PHP Query::getHydrationMode方法的具體用法?PHP Query::getHydrationMode怎麽用?PHP Query::getHydrationMode使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Doctrine\ORM\Query的用法示例。


在下文中一共展示了Query::getHydrationMode方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getIterator

 /**
  * {@inheritdoc}
  */
 public function getIterator()
 {
     $offset = $this->query->getFirstResult();
     $length = $this->query->getMaxResults();
     if ($this->fetchJoinCollection) {
         $subQuery = $this->cloneQuery($this->query);
         $subQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\\ORM\\Tools\\Pagination\\LimitSubqueryWalker'))->setFirstResult($offset)->setMaxResults($length);
         $ids = array_map('current', $subQuery->getScalarResult());
         $whereInQuery = $this->cloneQuery($this->query);
         // don't do this for an empty id array
         if (count($ids) > 0) {
             $namespace = WhereInWalker::PAGINATOR_ID_ALIAS;
             $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\\ORM\\Tools\\Pagination\\WhereInWalker'));
             $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, count($ids));
             $whereInQuery->setFirstResult(null)->setMaxResults(null);
             foreach ($ids as $i => $id) {
                 $i++;
                 $whereInQuery->setParameter("{$namespace}_{$i}", $id);
             }
         }
         $result = $whereInQuery->getResult($this->query->getHydrationMode());
     } else {
         $result = $this->cloneQuery($this->query)->setMaxResults($length)->setFirstResult($offset)->getResult($this->query->getHydrationMode());
     }
     return new \ArrayIterator($result);
 }
開發者ID:pabloasc,項目名稱:test_social,代碼行數:29,代碼來源:Paginator.php

示例2: getResult

 public function getResult()
 {
     $offset = $this->query->getFirstResult();
     $length = $this->query->getMaxResults();
     if ($this->fetchJoinCollection) {
         $subQuery = $this->cloneQuery($this->query);
         if ($this->useOutputWalker($subQuery)) {
             $subQuery->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, 'Doctrine\\ORM\\Tools\\Pagination\\LimitSubqueryOutputWalker');
         } else {
             $this->appendTreeWalker($subQuery, 'Doctrine\\ORM\\Tools\\Pagination\\LimitSubqueryWalker');
         }
         $subQuery->setFirstResult($offset)->setMaxResults($length);
         $ids = array_map('current', $subQuery->getScalarResult());
         $whereInQuery = $this->cloneQuery($this->query);
         // don't do this for an empty id array
         if (count($ids) == 0) {
             return new \ArrayIterator(array());
         }
         $this->appendTreeWalker($whereInQuery, 'Doctrine\\ORM\\Tools\\Pagination\\WhereInWalker');
         $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, count($ids));
         $whereInQuery->setFirstResult(null)->setMaxResults(null);
         $whereInQuery->setParameter(WhereInWalker::PAGINATOR_ID_ALIAS, $ids);
         $whereInQuery->setCacheable($this->query->isCacheable());
         $result = $whereInQuery->getResult($this->query->getHydrationMode());
     } else {
         $result = $this->cloneQuery($this->query)->setMaxResults($length)->setFirstResult($offset)->setCacheable($this->query->isCacheable())->getResult($this->query->getHydrationMode());
     }
     return $result;
 }
開發者ID:ratehub,項目名稱:doctrine2,代碼行數:29,代碼來源:Paginator.php

示例3: getIterator

 /**
  * {@inheritdoc}
  */
 public function getIterator()
 {
     $offset = $this->query->getFirstResult();
     $length = $this->query->getMaxResults();
     if ($this->fetchJoinCollection) {
         $subQuery = $this->cloneQuery($this->query);
         $subQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\\Adapter\\DoctrineORM\\LimitSubqueryWalker'))->setFirstResult($offset)->setMaxResults($length);
         $ids = array_map('current', $subQuery->getScalarResult());
         $whereInQuery = $this->cloneQuery($this->query);
         // don't do this for an empty id array
         if (count($ids) > 0) {
             $namespace = 'pg_';
             $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\\Adapter\\DoctrineORM\\WhereInWalker'));
             $whereInQuery->setHint('id.count', count($ids));
             $whereInQuery->setHint('pg.ns', $namespace);
             $whereInQuery->setFirstResult(null)->setMaxResults(null);
             foreach ($ids as $i => $id) {
                 $i++;
                 $whereInQuery->setParameter("{$namespace}_{$i}", $id);
             }
         }
         return new \ArrayIterator($whereInQuery->getResult($this->query->getHydrationMode()));
     }
     $result = $this->cloneQuery($this->query)->setMaxResults($length)->setFirstResult($offset)->getResult($this->query->getHydrationMode());
     return new \ArrayIterator($result);
 }
開發者ID:pabloasc,項目名稱:test_social,代碼行數:29,代碼來源:Paginator.php

示例4: SelectExpression

 /**
  * SelectExpression ::=
  *      IdentificationVariable | StateFieldPathExpression |
  *      (AggregateExpression | "(" Subselect ")" | FunctionDeclaration) [["AS"] AliasResultVariable]
  *
  * @return \Doctrine\ORM\Query\AST\SelectExpression
  */
 public function SelectExpression()
 {
     $expression = null;
     $fieldAliasIdentificationVariable = null;
     $peek = $this->_lexer->glimpse();
     // First we recognize for an IdentificationVariable (DQL class alias)
     if ($peek['value'] != '.' && $peek['value'] != '(' && $this->_lexer->lookahead['type'] === Lexer::T_IDENTIFIER) {
         $expression = $this->IdentificationVariable();
     } else {
         if (($isFunction = $this->_isFunction()) !== false || $this->_isSubselect()) {
             if ($isFunction) {
                 if ($this->_isAggregateFunction($this->_lexer->lookahead['type'])) {
                     $expression = $this->AggregateExpression();
                 } else {
                     $expression = $this->FunctionDeclaration();
                 }
             } else {
                 $this->match(Lexer::T_OPEN_PARENTHESIS);
                 $expression = $this->Subselect();
                 $this->match(Lexer::T_CLOSE_PARENTHESIS);
             }
             if ($this->_lexer->isNextToken(Lexer::T_AS)) {
                 $this->match(Lexer::T_AS);
             }
             if ($this->_lexer->isNextToken(Lexer::T_IDENTIFIER)) {
                 $token = $this->_lexer->lookahead;
                 $fieldAliasIdentificationVariable = $this->AliasResultVariable();
                 // Include AliasResultVariable in query components.
                 $this->_queryComponents[$fieldAliasIdentificationVariable] = array('resultVariable' => $expression, 'nestingLevel' => $this->_nestingLevel, 'token' => $token);
             }
         } else {
             // Deny hydration of partial objects if doctrine.forcePartialLoad query hint not defined
             if ($this->_query->getHydrationMode() == Query::HYDRATE_OBJECT && !$this->_query->getHint(Query::HINT_FORCE_PARTIAL_LOAD)) {
                 throw DoctrineException::partialObjectsAreDangerous();
             }
             $expression = $this->StateFieldPathExpression();
         }
     }
     return new AST\SelectExpression($expression, $fieldAliasIdentificationVariable);
 }
開發者ID:nvdnkpr,項目名稱:symfony-demo,代碼行數:47,代碼來源:Parser.php

示例5: getQueryCacheKey

 /**
  * @param Query $query
  *
  * @return string
  */
 public function getQueryCacheKey(Query $query)
 {
     $hints = $query->getHints();
     ksort($hints);
     return md5($query->getDql() . var_export($query->getParameters(), true) . var_export($hints, true) . '&firstResult=' . $query->getFirstResult() . '&maxResult=' . $query->getMaxResults() . '&hydrationMode=' . $query->getHydrationMode());
 }
開發者ID:treehouselabs,項目名稱:cache-bundle,代碼行數:11,代碼來源:CachedEntityManager.php

示例6: fetch

 public function fetch(Query $query, $mode = self::FETCH_ALL)
 {
     if ($mode == self::FETCH_ALL) {
         if ($query->getMaxResults() !== null && $query->getHydrationMode() != self::HYDRATE_SINGLE_SCALAR) {
             return (new Paginator($query))->getIterator()->getArrayCopy();
         } else {
             return $query->execute();
         }
     } else {
         if ($mode == self::FETCH_ALL_PAGED) {
             return new Paginator($query);
         } else {
             if ($mode == self::FETCH_ONE) {
                 $query->setMaxResults(1);
                 if ($query->getHydrationMode() != self::HYDRATE_SINGLE_SCALAR) {
                     return (new Paginator($query))->getIterator()->current();
                 } else {
                     return $query->getOneOrNullResult();
                 }
             } else {
                 if ($mode == self::FETCH_ONE_UNIQUE) {
                     return $query->getOneOrNullResult();
                 }
             }
         }
     }
 }
開發者ID:jacksleight,項目名稱:chalk,代碼行數:27,代碼來源:Repository.php


注:本文中的Doctrine\ORM\Query::getHydrationMode方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。