/** * @covers Kunstmaan\AdminListBundle\AdminList\Filter::bindRequest * @covers Kunstmaan\AdminListBundle\AdminList\Filter::getData */ public function testBindRequest() { $request = new Request(array('filter_comparator_string' => 'equals', 'filter_value_string' => 'TheStringValue')); $this->object->bindRequest($request); $this->assertEquals(array('comparator' => 'equals', 'value' => 'TheStringValue'), $this->object->getData()); }
/** * @param Request $request */ public function bindRequest(Request $request) { $filterBuilderName = 'filter_' . $request->get('_route'); $this->currentParameters = $request->query->all(); if (count($this->currentParameters) === 0) { if (!$request->query->has('filter')) { if ($request->getSession()->has($filterBuilderName)) { $savedQuery = $request->getSession()->get($filterBuilderName); $request->query->replace($savedQuery); $this->currentParameters = $savedQuery; } } } else { $request->getSession()->set($filterBuilderName, $this->currentParameters); } $filterColumnNames = $request->query->get('filter_columnname'); if (isset($filterColumnNames)) { $uniqueIds = $request->query->get('filter_uniquefilterid'); $index = 0; foreach ($filterColumnNames as $filterColumnName) { $uniqueId = $uniqueIds[$index]; $filter = new Filter($filterColumnName, $this->get($filterColumnName), $uniqueId); $this->currentFilters[] = $filter; $filter->bindRequest($request); $index++; } } }