Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  *
  * @param \Versatile\Search\Contracts\Criteria $criteria
  * @return \Versatile\Search\Contracts\Search
  **/
 public function search(CriteriaContract $criteria)
 {
     if ($factory = $this->nearestForClass($criteria->modelClass())) {
         return call_user_func($factory, $criteria);
     }
     throw new OutOfBoundsException('No factory for ' . $criteria->modelClass() . ' found');
 }
Ejemplo n.º 2
0
 /**
  * Removes a sort key (and direction)
  *
  * @param string $key
  * @return self
  **/
 public function removeSort($key)
 {
     $this->criteria->removeSort($key, $order);
     return $this;
 }
Ejemplo n.º 3
0
 protected function addSortIfPassed(CriteriaContract $criteria, array $params)
 {
     if (!isset($params[$this->sortParam])) {
         return;
     }
     $direction = isset($params[$this->directionParam]) ? $params[$this->directionParam] : 'asc';
     $direction = in_array($direction, ['asc', 'desc']) ? $direction : 'asc';
     $criteria->sort($params[$this->sortParam], $direction);
 }