我已经定义的路线为遵循我的routing.yml文件:如何在Symfony路由中使用锚点?
route_name:
path: "/dashboard#messages/{id}"
但是当我问的Symfony生成的路线,我得到:
/dashboard%23messages/12345
我怎么能跳过编码部分路线生成?或者我怎么能在路径定义中跳出#
char? PS:使用(大)遗留系统,我不能更改的网址。
我已经定义的路线为遵循我的routing.yml文件:如何在Symfony路由中使用锚点?
route_name:
path: "/dashboard#messages/{id}"
但是当我问的Symfony生成的路线,我得到:
/dashboard%23messages/12345
我怎么能跳过编码部分路线生成?或者我怎么能在路径定义中跳出#
char? PS:使用(大)遗留系统,我不能更改的网址。
可从Symfony 3.2获得。锚杆
支持已经公布了使用fragment
可变路由组件:
$this->get('router')->generate('user_settings', ['_fragment' => 'password']);
将产生一个网址:/user/settings#password
欲了解更多信息view the announcement。
你不能简单 - 航线部分无条件编码:
$url = strtr(rawurlencode($url), $this->decodedChars);
从技术上讲,你可能已经扩展了类UrlGenerator
类和使用router.options.generator_class
参数交换他们。然后,您可以覆盖doGenerate
方法并替换%23
- >#
。
我唯一关心的是网址的生成。不是URL处理。 –
与[KnpMenuBundle](https://github.com/KnpLabs/KnpMenuBundle):'$ node-> addChild('settings',['route'=>'user_settings','routeParameters'=> ['_ fragment'= >'密码']])' –