/** * Fetches the data from the persistent data storage. * @return array list of data items * @since v1.0 */ protected function fetchData() { if (($pagination = $this->getPagination()) !== false) { $pagination->setItemCount($this->getTotalItemCount()); $this->_criteria->setLimit($pagination->getLimit()); $this->_criteria->setOffset($pagination->getOffset()); } /*if(($sort=$this->getSort())!==false && ($order=$sort->getOrderBy())!='') { $sort=array(); foreach($this->getSortDirections($order) as $name=>$descending) { $sort[$name]=$descending ? EMongoCriteria::SORT_DESC : EMongoCriteria::SORT_ASC; } $this->_criteria->setSort($sort); } */ if (($sort = $this->getSort()) !== false) { $sort->applyOrder($this->_criteria); } return $this->model->findAll($this->_criteria); }
public function findByParams(array $params) { $criteria = new EMongoCriteria(); $sortedField = isset($params['sorted_field']) ? $params['sorted_field'] : 'created_time'; if (empty($params['limit'])) { $params['limit'] = 25; } if (!empty($params['pid'])) { $criteria->addCondition('pid', $params['pid']); } if (empty($params['since'])) { $criteria->setSort([$sortedField => 'desc']); } if (!empty($params['since'])) { $criteria->addCondition($sortedField, (int) $params['since'], '$gt'); $criteria->setSort([$sortedField => 'asc']); } if (!empty($params['until'])) { $criteria->addCondition($sortedField, (int) $params['until'], '$lt'); $criteria->setSort([$sortedField => 'desc']); } $criteria->setLimit($params['limit']); return $this->find($criteria); }