sort() public method

If sorting by multiple fields, the first argument should be an array of field name (key) and order (value) pairs.
public sort ( array | string $fieldName, integer | string $order = 1 )
$fieldName array | string Field name or array of field/order pairs
$order integer | string Field order (if one field is specified)
 /**
  * filter
  *
  * Apply the query filter
  * 
  * @param  \Doctrine\MongoDB\Query\Builder $qb
  * @return \Doctrine\MongoDB\Query\Expr $expr
  */
 public function filter(Query\Builder $qb)
 {
     $qb->sort($this->fieldName, $this->fieldValue);
     if (null !== $this->spec) {
         return $this->spec->filter($qb);
     }
 }
 /**
  * {inheritdoc}.
  */
 protected function applySorting(QueryBuilder $queryBuilder, array $sorting = null)
 {
     if (null === $sorting) {
         return;
     }
     foreach ($sorting as $property => $order) {
         $queryBuilder->sort($this->getPropertyName($property), $order);
     }
 }
Esempio n. 3
0
 /**
  * Constructor.
  *
  * @param \Doctrine\MongoDB\Query\Builder $queryBuilder
  * @param null|\Staffim\DTOBundle\Collection\Pagination $pagination
  * @param null|\Staffim\DTOBundle\Collection\Sorting $sorting
  */
 public function __construct(Builder $queryBuilder, Pagination $pagination = null, Sorting $sorting = null)
 {
     $this->query = $queryBuilder->getQuery();
     $this->count = $this->query->count();
     if ($sorting || $pagination) {
         if ($sorting) {
             $queryBuilder->sort($sorting->fieldName, $sorting->order);
         }
         if ($pagination) {
             if ($pagination->limit) {
                 $queryBuilder->limit($pagination->limit);
             }
             if ($pagination->offset) {
                 $queryBuilder->skip($pagination->offset);
             }
             $this->pagination = $pagination;
         }
         $this->query = $queryBuilder->getQuery();
     }
 }
Esempio n. 4
0
 /**
  * @param QueryBuilder $queryBuilder
  * @param array        $sorting
  */
 protected function applySorting(QueryBuilder $queryBuilder, array $sorting = array())
 {
     foreach ($sorting as $property => $order) {
         $queryBuilder->sort($property, $order);
     }
 }