I have defined a route as followed in my routing.yml file :
route_name:
path: "/dashboard#messages/{id}"
However when I ask Symfony to generate that route, I get :
/dashboard%23messages/12345
How can I skip the encoding part of the route generation? Or how can I escape the #
char in the path definition?
PS : Working with a (big) legacy system, I cannot change the urls.
You cannot easily - route parts are encoded unconditionally:
see at https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Routing/Generator/UrlGenerator.php#L192
Technically you might have extended the class
UrlGenerator
class and swap them usingrouter.options.generator_class
parameter. Then you could override thedoGenerate
method and replace%23
->#
.In twig
Available from Symfony 3.2.
Support for anchors has been announced for the routing component using the
fragment
variable :Will generate an url :
/user/settings#password
For more information view the announcement.