Skip to content

Commit 26e4092

Browse files
author
Anton
authored
Merge pull request #464 from AntonShevchuk/develop
Changed Grid Filter delimeter from `-` to `_`
2 parents 7004fdb + 87d95bc commit 26e4092

5 files changed

Lines changed: 10 additions & 7 deletions

File tree

src/Grid/Grid.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -330,19 +330,19 @@ public function processRequest(): void
330330
$filter = Request::getParam($this->prefix . 'filter-' . $alias);
331331

332332
if (null !== $filter) {
333-
$filter = trim($filter, ' -');
333+
$filter = trim($filter, ' _-');
334334
if (strpos($filter, '-')) {
335335
/**
336336
* Example of filters
337337
* - http://domain.com/users/grid/users-filter-roleId/gt-2 - roleId greater than 2
338-
* - http://domain.com/users/grid/users-filter-roleId/gt-1-lt-4 - 1 < roleId < 4
338+
* - http://domain.com/users/grid/users-filter-roleId/gt-1_lt-4 - 1 < roleId < 4
339339
* - http://domain.com/users/grid/users-filter-login/eq-admin - login == admin
340340
* - http://domain.com/users/grid/users-filter-login/like-adm - login LIKE `adm`
341341
* - http://domain.com/users/grid/users-filter-login/like-od- - login LIKE `od-`
342342
*/
343-
while ($filter) {
344-
// @todo rewrite with regexp like (filter|filter)-(value)
345-
[$filterName, $filterValue, $filter] = array_pad(explode('-', $filter, 3), 3, null);
343+
$filters = explode('_', $filter);
344+
foreach ($filters as $rawFilter) {
345+
[$filterName, $filterValue] = explode('-', $rawFilter, 2);
346346
$this->addFilter($column, $filterName, $filterValue);
347347
}
348348
} else {
@@ -455,7 +455,7 @@ public function getParams(array $rewrite = []): array
455455
foreach ($columnFilters as $filterName => $filterValue) {
456456
$columnFilter[] = $filterName . '-' . $filterValue;
457457
}
458-
$params[$this->prefix . 'filter-' . $column] = implode('-', $columnFilter);
458+
$params[$this->prefix . 'filter-' . $column] = implode('_', $columnFilter);
459459
}
460460
return $params;
461461
}

tests/src/Fixtures/Grid/ArrayGrid.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class ArrayGrid extends Grid
3030
* Init ArraySource
3131
*
3232
* @return void
33+
* @throws \Bluz\Grid\GridException
3334
*/
3435
public function init(): void
3536
{

tests/src/Fixtures/Grid/SelectGrid.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class SelectGrid extends Grid
3131
* Init SelectSource
3232
*
3333
* @return void
34+
* @throws \Bluz\Grid\GridException
3435
*/
3536
public function init(): void
3637
{

tests/src/Fixtures/Grid/SqlGrid.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class SqlGrid extends Grid
3030
* Init SqlSource
3131
*
3232
* @return void
33+
* @throws \Bluz\Grid\GridException
3334
*/
3435
public function init(): void
3536
{

tests/unit/Grid/Source/ArraySourceTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public function testFilters()
7171
self::assertEquals(8, $grid->total());
7272
self::assertEquals(2, $grid->pages());
7373

74-
self::assertEquals('/index/index/arr-filter-index/gt-1-ge-2-lt-10-le-9', $grid->first());
74+
self::assertEquals('/index/index/arr-filter-index/gt-1_ge-2_lt-10_le-9', $grid->first());
7575
}
7676

7777
/**

0 commit comments

Comments
 (0)