public function getFilters() { if (is_array($this->filters)) { // set from cache! (for export) return $this->filters; } $filters = []; $optionsRenderer = $this->getOptionsRenderer(); $parameterNames = $optionsRenderer['parameterNames']; $request = $this->getRequest(); $isSearch = $request->getPost($parameterNames['isSearch']); if ('true' == $isSearch) { // User filtering foreach ($this->getColumns() as $column) { /* @var $column \ZfcDatagrid\Column\AbstractColumn */ if ($request->getPost($column->getUniqueId()) != '') { $value = $request->getPost($column->getUniqueId()); $filter = new \ZfcDatagrid\Filter(); $filter->setFromColumn($column, $value); $filters[] = $filter; $column->setFilterActive($filter->getDisplayColumnValue()); } } } if (count($filters) === 0) { // No user sorting -> get default sorting $filters = $this->getFiltersDefault(); } $this->filters = $filters; return $this->filters; }
/** * * @todo Make parameter config * * @see \ZfcDatagrid\Renderer\AbstractRenderer::getFilters() */ public function getFilters() { if (is_array($this->filters)) { return $this->filters; } $request = $this->getRequest(); $filters = []; if (($request->isPost() === true || $request->isGet() === true) && $request->getPost('toolbarFilters', $request->getQuery('toolbarFilters')) !== null) { foreach ($request->getPost('toolbarFilters', $request->getQuery('toolbarFilters')) as $uniqueId => $value) { if ($value != '') { foreach ($this->getColumns() as $column) { /* @var $column \ZfcDatagrid\Column\AbstractColumn */ if ($column->getUniqueId() == $uniqueId) { $filter = new \ZfcDatagrid\Filter(); $filter->setFromColumn($column, $value); $filters[] = $filter; $column->setFilterActive($filter->getDisplayColumnValue()); } } } } } if (!empty($filters)) { $this->filters = $filters; } else { // No user sorting -> get default sorting $this->filters = $this->getFiltersDefault(); } return $this->filters; }
public function testBetween() { $filter = new \ZfcDatagrid\Filter(); $filter->setFromColumn($this->column, '3 <> myValue'); $filterSelect = clone $this->filterSelect; $filterSelect->applyFilter($filter); $select = $filterSelect->getSelect(); /* @var $where \Zend\Db\Sql\Where */ $where = $select->getRawState('where'); $predicates = $where->getPredicates(); $operator = $this->getWherePart($predicates, 0); $this->assertInstanceOf('Zend\\Db\\Sql\\Predicate\\Between', $operator); $this->assertEquals('myCol', $operator->getIdentifier()); $this->assertEquals('3', $operator->getMinValue()); $this->assertEquals('myValue', $operator->getMaxValue()); }
public function testBetween() { $filter = new \ZfcDatagrid\Filter(); $filter->setFromColumn($this->colVolumne, '789 <> 123'); $filterDoctrine2 = clone $this->filterDoctrine2; $filterDoctrine2->applyFilter($filter); $whereParts = $this->getWhereParts($filterDoctrine2->getQueryBuilder()); $parameters = $this->getParameters($filterDoctrine2); $this->assertEquals('volume BETWEEN :volume0 AND :volume1', $whereParts[0]); $this->assertEquals('123', $parameters[0]->getValue()); $this->assertEquals('789', $parameters[1]->getValue()); }