bug #19088 [Routing] treat fragment after resolving query string params (xabbuh)
This PR was merged into the 3.2-dev branch.
Discussion
----------
[Routing] treat fragment after resolving query string params
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
The implementation from #12979 led to a conflict with #18280 which was merged in the meantime.
Commits
-------
7475aa8
treat fragment after resolving query string params
This commit is contained in:
commit
22f7ed7d9e
@ -257,18 +257,15 @@ class UrlGenerator implements UrlGeneratorInterface, ConfigurableRequirementsInt
|
|||||||
$url = $schemeAuthority.$this->context->getBaseUrl().$url;
|
$url = $schemeAuthority.$this->context->getBaseUrl().$url;
|
||||||
}
|
}
|
||||||
|
|
||||||
// extract unused parameters
|
|
||||||
$extra = array_diff_key($parameters, $variables, $defaults);
|
|
||||||
|
|
||||||
// extract fragment
|
|
||||||
$fragment = isset($extra['_fragment']) ? $extra['_fragment'] : '';
|
|
||||||
unset($extra['_fragment']);
|
|
||||||
|
|
||||||
// add a query string if needed
|
// add a query string if needed
|
||||||
$extra = array_udiff_assoc(array_diff_key($parameters, $variables), $defaults, function ($a, $b) {
|
$extra = array_udiff_assoc(array_diff_key($parameters, $variables), $defaults, function ($a, $b) {
|
||||||
return $a == $b ? 0 : 1;
|
return $a == $b ? 0 : 1;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// extract fragment
|
||||||
|
$fragment = isset($extra['_fragment']) ? $extra['_fragment'] : '';
|
||||||
|
unset($extra['_fragment']);
|
||||||
|
|
||||||
if ($extra && $query = http_build_query($extra, '', '&')) {
|
if ($extra && $query = http_build_query($extra, '', '&')) {
|
||||||
// "/" and "?" can be left decoded for better user experience, see
|
// "/" and "?" can be left decoded for better user experience, see
|
||||||
// http://tools.ietf.org/html/rfc3986#section-3.4
|
// http://tools.ietf.org/html/rfc3986#section-3.4
|
||||||
|
Reference in New Issue
Block a user