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


PHP DocumentManager::hasLocaleChooserStrategy方法代碼示例

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


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

示例1: getQuery

 /**
  * Returns an ODM Query object from the given ODM (query) Builder.
  *
  * Dispatches the From, Select, Where and OrderBy nodes. Each of these
  * "root" nodes append or set PHPCR QOM objects to corresponding properties
  * in this class, which are subsequently used to create a PHPCR QOM object which
  * is embedded in an ODM Query object.
  *
  * @param QueryBuilder $builder
  *
  * @return Query
  */
 public function getQuery(QueryBuilder $builder)
 {
     $this->aliasWithTranslatedFields = array();
     $this->locale = $builder->getLocale();
     if (null === $this->locale && $this->dm->hasLocaleChooserStrategy()) {
         $this->locale = $this->dm->getLocaleChooserStrategy()->getLocale();
     }
     $from = $builder->getChildrenOfType(QBConstants::NT_FROM);
     if (!$from) {
         throw new RuntimeException('No From (source) node in query');
     }
     $dispatches = array(QBConstants::NT_FROM, QBConstants::NT_SELECT, QBConstants::NT_WHERE, QBConstants::NT_ORDER_BY);
     foreach ($dispatches as $dispatchType) {
         $this->dispatchMany($builder->getChildrenOfType($dispatchType));
     }
     if (count($this->sourceDocumentNodes) > 1 && null === $builder->getPrimaryAlias()) {
         throw new InvalidArgumentException('You must specify a primary alias when selecting from multiple document sources' . 'e.g. $qb->from(\'a\') ...');
     }
     // for each document source add phpcr:{class,classparents} restrictions
     foreach ($this->sourceDocumentNodes as $sourceNode) {
         $documentFqn = $this->aliasMetadata[$sourceNode->getAlias()]->getName();
         $odmClassConstraints = $this->qomf->orConstraint($this->qomf->comparison($this->qomf->propertyValue($sourceNode->getAlias(), 'phpcr:class'), QOMConstants::JCR_OPERATOR_EQUAL_TO, $this->qomf->literal($documentFqn)), $this->qomf->comparison($this->qomf->propertyValue($sourceNode->getAlias(), 'phpcr:classparents'), QOMConstants::JCR_OPERATOR_EQUAL_TO, $this->qomf->literal($documentFqn)));
         if ($this->constraint) {
             $this->constraint = $this->qomf->andConstraint($this->constraint, $odmClassConstraints);
         } else {
             $this->constraint = $odmClassConstraints;
         }
     }
     foreach (array_keys($this->aliasWithTranslatedFields) as $alias) {
         $this->translator[$alias]->alterQueryForTranslation($this->qomf, $this->from, $this->constraint, $alias, $this->locale);
     }
     $phpcrQuery = $this->qomf->createQuery($this->from, $this->constraint, $this->orderings, $this->columns);
     $query = new Query($phpcrQuery, $this->dm, $builder->getPrimaryAlias());
     if ($firstResult = $builder->getFirstResult()) {
         $query->setFirstResult($firstResult);
     }
     if ($maxResults = $builder->getMaxResults()) {
         $query->setMaxResults($maxResults);
     }
     return $query;
 }
開發者ID:nikophil,項目名稱:cmf-tests,代碼行數:53,代碼來源:BuilderConverterPhpcr.php


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