Example #1
0
 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);
 }