You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think we have wrong behaviour in winter/storm/src/Router/Helper.php getParameterName function.
In old october cms version (1.x) this function looked like this -
but then in function urlFromPattern in Router.php we have following situation -
here
for parameter "region?", function Helper::getParameterName returns "region", instead of "region?" like it was in previous version (see above) , this is due to this condition -
and then, in this condition -
$parameterExists = array_key_exists($paramName, $parameters) &&
we have false, because "region" key does not exist in params array, and we have wrong url like -
"some/destinations"
instead of
"some/destinations/central-america/belize"
In order to solve this, I had to remove "?" from params keys, before passing it to urlFromPattern($pattern, $parameters = [])
Steps to replicate
see above
Workaround
No response
The text was updated successfully, but these errors were encountered:
Winter CMS Build
dev-develop
PHP Version
8.1
Database engine
MySQL/MariaDB
Plugins installed
No response
Issue description
I think we have wrong behaviour in winter/storm/src/Router/Helper.php getParameterName function.
In old october cms version (1.x) this function looked like this -
but now it is like this -
and if we have url pattern like this -
url = "/some/:dest|^destinations$|^world$|^countries$/:region?*"
when we run $this->getRouter()->getParameters(); for url "some/destinations/central-america/belize/"
we get such array -
array:2 [
"dest" => "destinations"
"region?" => "central-america/belize"
]
but then in function urlFromPattern in Router.php we have following situation -
here
for parameter "region?", function Helper::getParameterName returns "region", instead of "region?" like it was in previous version (see above) , this is due to this condition -
and then, in this condition -
$parameterExists = array_key_exists($paramName, $parameters) &&
we have false, because "region" key does not exist in params array, and we have wrong url like -
"some/destinations"
instead of
"some/destinations/central-america/belize"
In order to solve this, I had to remove "?" from params keys, before passing it to urlFromPattern($pattern, $parameters = [])
Steps to replicate
see above
Workaround
No response
The text was updated successfully, but these errors were encountered: