示例#1
0
 /**
  * @param ModelCriteria $search
  *
  * @return ObjectCollection
  */
 protected function searchWithOffset(ModelCriteria $search)
 {
     $limit = intval($this->getArgValue('limit'));
     if ($limit >= 0) {
         $search->limit($limit);
     }
     $search->offset(intval($this->getArgValue('offset')));
     return $search->find();
 }
 public function testOffset()
 {
     $c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book');
     $c->limit(50);
     $c->offset(10);
     if ($this->isDb('mysql')) {
         $sql = 'SELECT  FROM  LIMIT 10, 50';
     } else {
         $sql = 'SELECT  FROM  LIMIT 50 OFFSET 10';
     }
     $params = array();
     $this->assertCriteriaTranslation($c, $sql, $params, 'offset() adds an OFFSET clause');
 }
示例#3
0
文件: Propel.php 项目: jarves/jarves
 /**
  * Maps options like limit, offset, order
  *
  * @param ModelCriteria $query
  * @param array $options
  *
  * @throws FileNotFoundException
  */
 public function mapOptions(ModelCriteria $query, $options = array())
 {
     if (isset($options['limit'])) {
         $query->limit($options['limit']);
     }
     if (isset($options['offset'])) {
         $query->offset($options['offset']);
     }
     if (isset($options['order']) && is_array($options['order'])) {
         foreach ($options['order'] as $field => $direction) {
             $fieldName = ucfirst($field);
             $tableMap = $this->tableMap;
             if (false !== ($pos = strpos($field, '.'))) {
                 $relationName = ucfirst(substr($field, 0, $pos));
                 $fieldName = ucfirst(substr($field, $pos + 1));
                 if (!($relation = $this->tableMap->getRelation($relationName))) {
                     throw new FileNotFoundException(sprintf('Relation `%s` in object `%s` not found', $relationName, $this->getObjectKey()));
                 }
                 $tableMap = $relation->getForeignTable();
             }
             if ($tableMap->hasColumnByPhpName(ucfirst($fieldName))) {
                 $column = $this->tableMap->getColumnByPhpName(ucfirst($fieldName));
                 $query->orderBy($column->getName(), $direction);
             }
         }
     }
 }