/**
  * @see CActiveDataProvider::setCriteria()
  * @param array|EMongoCriteria $value
  */
 public function setCriteria($value)
 {
     if ($value instanceof EMongoCriteria) {
         $this->_criteria = $value->toArray();
     }
     if (is_array($value)) {
         $this->_criteria = $value;
     }
 }
Example #2
0
 /**
  * Merges either an array of criteria or another criteria object with this one
  * @param array|EMongoCriteria $criteria
  * @return EMongoCriteria
  */
 public function mergeWith($criteria)
 {
     if ($criteria instanceof EMongoCriteria) {
         return $this->mergeWith($criteria->toArray());
     }
     if (is_array($criteria)) {
         if (isset($criteria['condition']) && is_array($criteria['condition'])) {
             $this->setCondition(CMap::mergeArray($this->condition, $criteria['condition']));
         }
         if (isset($criteria['sort']) && is_array($criteria['sort'])) {
             $this->setSort(CMap::mergeArray($this->sort, $criteria['sort']));
         }
         if (isset($criteria['skip']) && is_numeric($criteria['skip'])) {
             $this->setSkip($criteria['skip']);
         }
         if (isset($criteria['limit']) && is_numeric($criteria['limit'])) {
             $this->setLimit($criteria['limit']);
         }
         if (isset($criteria['project']) && is_array($criteria['project'])) {
             $this->setProject(CMap::mergeArray($this->project, $criteria['project']));
         }
     }
     return $this;
 }