Exemplo n.º 1
0
 /**
  * Test filters
  *
  * @param array $filterData
  * @test
  * @dataProvider filterDataProvider
  */
 public function filterTest($filterData = [])
 {
     $filter = \Magelight\Db\CollectionFilter::forge($filterData);
     $data = $filter->getFilterMethods();
     $this->assertEquals(is_array($data), true);
     $this->assertTrue(isset($data[0]['statement']));
     $this->assertTrue(isset($data[0]['field']));
     $this->assertTrue(isset($data[0]['value']));
 }
Exemplo n.º 2
0
 /**
  * Apply filter to collection
  *
  * @param CollectionFilter $filter
  *
  * @return Collection
  */
 public function applyFilter(CollectionFilter $filter)
 {
     $filterExpression = $filter->getFilterExpression();
     if ($filterExpression instanceof ExpressionInterface && !$filterExpression->isEmpty()) {
         $this->getDataSource()->whereEx($filterExpression);
         return $this;
     }
     /**
      * For backward compatibility
      * @todo remove this and migrate to new expression filter
      */
     foreach ($filter->getFilterMethods() as $method) {
         $statement = $method['statement'];
         $field = $method['field'];
         $value = $method['value'];
         $this->getDataSource()->{$statement}($field, $value);
     }
     return $this;
 }
Exemplo n.º 3
0
 /**
  * Get collection filter from form
  *
  * @return mixed
  */
 public function getCollectionFilter()
 {
     return \Magelight\Db\CollectionFilter::forge($this->getRequestFields());
 }