Skip to content

Commit ae87f87

Browse files
committed
fix(Filters): dot was replaced by underscore by Slim
1 parent 5c268c7 commit ae87f87

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/Service/Request/QueryModifier/Modifier/EasyFilter.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
use Eukles\Service\QueryModifier\Easy\Builder\Filter;
1212
use Eukles\Service\QueryModifier\Easy\Modifier;
13+
use Eukles\Service\QueryModifier\UseQuery\UseQueryFromDotNotationException;
1314
use Propel\Runtime\ActiveQuery\ModelCriteria;
1415
use Psr\Http\Message\ServerRequestInterface;
1516

@@ -40,12 +41,29 @@ public function __construct(ServerRequestInterface $request, array $ignoredParam
4041
/**
4142
* @param ModelCriteria $query
4243
*
43-
* @throws \Eukles\Service\QueryModifier\UseQuery\UseQueryFromDotNotationException
44+
* @throws UseQueryFromDotNotationException
4445
*/
4546
public function apply(ModelCriteria $query)
4647
{
4748
$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) {
4967
# Ignored params
5068
if (is_string($value) === false || in_array($column, $this->ignoredParams)) {
5169
continue;

0 commit comments

Comments
 (0)