@@ -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 }
0 commit comments