|
10 | 10 |
|
11 | 11 | use Eukles\Service\QueryModifier\Easy\Builder\Filter; |
12 | 12 | use Eukles\Service\QueryModifier\Easy\Modifier; |
| 13 | +use Eukles\Service\QueryModifier\UseQuery\UseQueryFromDotNotationException; |
13 | 14 | use Propel\Runtime\ActiveQuery\ModelCriteria; |
14 | 15 | use Psr\Http\Message\ServerRequestInterface; |
15 | 16 |
|
@@ -40,12 +41,29 @@ public function __construct(ServerRequestInterface $request, array $ignoredParam |
40 | 41 | /** |
41 | 42 | * @param ModelCriteria $query |
42 | 43 | * |
43 | | - * @throws \Eukles\Service\QueryModifier\UseQuery\UseQueryFromDotNotationException |
| 44 | + * @throws UseQueryFromDotNotationException |
44 | 45 | */ |
45 | 46 | public function apply(ModelCriteria $query) |
46 | 47 | { |
47 | 48 | $modifier = new Modifier($query); |
48 | | - foreach ($this->request->getQueryParams() as $column => $value) { |
| 49 | + $rawQueryString = $this->request->getUri()->getQuery(); |
| 50 | + $decodedQueryString = urldecode($rawQueryString); |
| 51 | + $rawQueryParams = explode('&', $decodedQueryString); |
| 52 | + $queryParams = []; |
| 53 | + foreach ($rawQueryParams as $rawQueryParam) { |
| 54 | + if (empty($rawQueryParam)) { |
| 55 | + # Ignore empty param '&' |
| 56 | + continue; |
| 57 | + } |
| 58 | + list($key, $val) = explode('=', $rawQueryParam); |
| 59 | + if (empty($key)) { |
| 60 | + # Ignore empty key '=value' |
| 61 | + continue; |
| 62 | + } |
| 63 | + $queryParams[$key] = (string)$val; |
| 64 | + } |
| 65 | + |
| 66 | + foreach ($queryParams as $column => $value) { |
49 | 67 | # Ignored params |
50 | 68 | if (is_string($value) === false || in_array($column, $this->ignoredParams)) { |
51 | 69 | continue; |
|
0 commit comments