Example #1
0
 /**
  * Merges this relation with a criteria specified dynamically.
  * @param array $criteria    the dynamically specified criteria
  * @param boolean $fromScope whether the criteria to be merged is from scopes
  * @throws \Database\Exception
  */
 public function mergeWith($criteria, $fromScope = false)
 {
     if ($criteria instanceof Criteria) {
         $criteria = $criteria->toArray();
     }
     parent::mergeWith($criteria, $fromScope);
     if (isset($criteria['defaultValue'])) {
         $this->defaultValue = $criteria['defaultValue'];
     }
 }
Example #2
0
 /**
  * Merges this relation with a criteria specified dynamically.
  * @param array $criteria the dynamically specified criteria
  * @param boolean $fromScope whether the criteria to be merged is from scopes
  */
 public function mergeWith($criteria, $fromScope = false)
 {
     if ($criteria instanceof Criteria) {
         $criteria = $criteria->toArray();
     }
     if ($fromScope) {
         if (isset($criteria['condition']) && $this->on !== $criteria['condition']) {
             if ($this->on === '') {
                 $this->on = $criteria['condition'];
             } elseif ($criteria['condition'] !== '') {
                 $this->on = "({$this->on}) AND ({$criteria['condition']})";
             }
         }
         unset($criteria['condition']);
     }
     parent::mergeWith($criteria);
     if (isset($criteria['joinType'])) {
         $this->joinType = $criteria['joinType'];
     }
     if (isset($criteria['on']) && $this->on !== $criteria['on']) {
         if ($this->on === '') {
             $this->on = $criteria['on'];
         } elseif ($criteria['on'] !== '') {
             $this->on = "({$this->on}) AND ({$criteria['on']})";
         }
     }
     if (isset($criteria['with'])) {
         $this->with = $criteria['with'];
     }
     if (isset($criteria['alias'])) {
         $this->alias = $criteria['alias'];
     }
     if (isset($criteria['together'])) {
         $this->together = $criteria['together'];
     }
 }