我在 routing.yml 文件中定义了一个路由:
route_name:
path: "/dashboard#messages/{id}"
但是,当我要求 Symfony 生成该路由时,我得到:
/dashboard%23messages/12345
如何跳过路由生成的编码部分?或者如何#
在路径定义中转义字符?
PS:使用(大型)遗留系统,我无法更改网址。
我在 routing.yml 文件中定义了一个路由:
route_name:
path: "/dashboard#messages/{id}"
但是,当我要求 Symfony 生成该路由时,我得到:
/dashboard%23messages/12345
如何跳过路由生成的编码部分?或者如何#
在路径定义中转义字符?
PS:使用(大型)遗留系统,我无法更改网址。
可从 Symfony 3.2 获得。
已宣布使用fragment
变量的路由组件支持锚点:
$this->get('router')->generate('user_settings', ['_fragment' => 'password']);
将生成一个 url :/user/settings#password
欲了解更多信息,请查看公告。
你不能轻易 - 路线部分无条件编码:
$url = strtr(rawurlencode($url), $this->decodedChars);
从技术上讲,您可能已经扩展了类类并使用参数UrlGenerator
交换它们。router.options.generator_class
然后你可以覆盖该doGenerate
方法并替换%23
-> #
。
在树枝上
<a href="{{ path('user_settings', { '_fragment': 'password' }) }}">