/**
  * Create query by filter
  *
  * @param FilterTestable $filter
  * @return BuilderInterface
  */
 public function createQueryByFilter(FilterInterface $filter)
 {
     $query = $this->createQuery();
     if ($filter->getIds()) {
         $query->inWhere('id', $filter->getIds());
     }
     return $query;
 }
 /**
  * Filter query post processing
  *
  * @param BuilderInterface $query
  * @param FilterInterface $filter
  */
 protected function filterQueryPost(BuilderInterface $query, FilterInterface $filter)
 {
     if ($filter->getLimit()) {
         $query->limit($filter->getLimit());
     }
     if ($filter->getOffset()) {
         $query->offset($filter->getOffset());
     }
     if ($filter->getGroupBy()) {
         $query->groupBy($filter->getGroupBy());
     }
     if ($filter->getOrderBy()) {
         $query->orderBy($filter->getOrderBy());
     }
 }
Beispiel #3
0
 /**
  * Get unique key from filter
  *
  * @param FilterInterface $filter
  * @return string
  */
 public function getUniqueKeyFromFilter(FilterInterface $filter)
 {
     $data = $filter->toArray();
     $data['class'] = get_class($filter);
     return md5(json_encode($data));
 }