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


PHP Criteria::getAliases方法代碼示例

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


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

示例1: mergeWith

 /**
  * Add the content of a Criteria to the current Criteria
  * In case of conflict, the current Criteria keeps its properties
  *
  * @param Criteria $criteria The criteria to read properties from
  * @param string   $operator The logical operator used to combine conditions
  *                           Defaults to Criteria::LOGICAL_AND, also accepts Criteria::LOGICAL_OR
  *                           This parameter is deprecated, use _or() instead
  *
  * @return $this|Criteria The current criteria object
  */
 public function mergeWith(Criteria $criteria, $operator = null)
 {
     // merge limit
     $limit = $criteria->getLimit();
     if (0 != $limit && -1 === $this->getLimit()) {
         $this->limit = $limit;
     }
     // merge offset
     $offset = $criteria->getOffset();
     if (0 != $offset && 0 === $this->getOffset()) {
         $this->offset = $offset;
     }
     // merge select modifiers
     $selectModifiers = $criteria->getSelectModifiers();
     if ($selectModifiers && !$this->selectModifiers) {
         $this->selectModifiers = $selectModifiers;
     }
     // merge select columns
     $this->selectColumns = array_merge($this->getSelectColumns(), $criteria->getSelectColumns());
     // merge as columns
     $commonAsColumns = array_intersect_key($this->getAsColumns(), $criteria->getAsColumns());
     if (!empty($commonAsColumns)) {
         throw new LogicException('The given criteria contains an AsColumn with an alias already existing in the current object');
     }
     $this->asColumns = array_merge($this->getAsColumns(), $criteria->getAsColumns());
     // merge orderByColumns
     $orderByColumns = array_merge($this->getOrderByColumns(), $criteria->getOrderByColumns());
     $this->orderByColumns = array_unique($orderByColumns);
     // merge groupByColumns
     $groupByColumns = array_merge($this->getGroupByColumns(), $criteria->getGroupByColumns());
     $this->groupByColumns = array_unique($groupByColumns);
     // merge where conditions
     if (Criteria::LOGICAL_OR === $operator) {
         $this->_or();
     }
     $isFirstCondition = true;
     foreach ($criteria->getMap() as $key => $criterion) {
         if ($isFirstCondition && Criteria::LOGICAL_OR === $this->defaultCombineOperator) {
             $this->addOr($criterion, null, null, false);
             $this->defaultCombineOperator = Criteria::LOGICAL_AND;
         } elseif ($this->containsKey($key)) {
             $this->addAnd($criterion);
         } else {
             $this->add($criterion);
         }
         $isFirstCondition = false;
     }
     // merge having
     $having = $criteria->getHaving();
     if ($having) {
         if ($this->getHaving()) {
             $this->addHaving($this->getHaving()->addAnd($having));
         } else {
             $this->addHaving($having);
         }
     }
     // merge alias
     $commonAliases = array_intersect_key($this->getAliases(), $criteria->getAliases());
     if (!empty($commonAliases)) {
         throw new LogicException('The given criteria contains an alias already existing in the current object');
     }
     $this->aliases = array_merge($this->getAliases(), $criteria->getAliases());
     // merge join
     $this->joins = array_merge($this->getJoins(), $criteria->getJoins());
     return $this;
 }
開發者ID:naldz,項目名稱:cyberden,代碼行數:77,代碼來源:Criteria.php

示例2: testMergeWithAliases

 public function testMergeWithAliases()
 {
     $c1 = new Criteria();
     $c1->addAlias('b', BookTableMap::TABLE_NAME);
     $c2 = new Criteria();
     $c1->mergeWith($c2);
     $this->assertEquals(array('b' => BookTableMap::TABLE_NAME), $c1->getAliases(), 'mergeWith() does not remove an existing alias');
     $c1 = new Criteria();
     $c2 = new Criteria();
     $c2->addAlias('a', AuthorTableMap::TABLE_NAME);
     $c1->mergeWith($c2);
     $this->assertEquals(array('a' => AuthorTableMap::TABLE_NAME), $c1->getAliases(), 'mergeWith() merge aliases to an empty alias');
     $c1 = new Criteria();
     $c1->addAlias('b', BookTableMap::TABLE_NAME);
     $c2 = new Criteria();
     $c2->addAlias('a', AuthorTableMap::TABLE_NAME);
     $c1->mergeWith($c2);
     $this->assertEquals(array('b' => BookTableMap::TABLE_NAME, 'a' => AuthorTableMap::TABLE_NAME), $c1->getAliases(), 'mergeWith() merge aliases to an existing alias');
 }
開發者ID:bondarovich,項目名稱:Propel2,代碼行數:19,代碼來源:CriteriaMergeTest.php


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