我正在使用Symfony2.5中的注释,我正在努力输出一个漂亮的干净网址:
.../display&type=foo&id=1
我一直得到的是:
.../display%26type=foo%26id=1
为什么Symfony2 url对此进行编码?
我的控制器看起来像这样:
/**
* Displays content
*
* @Route("/display/type={type}&id={id}", name="content_display")
* @Template(...)
*/
public function displayAction($type, $id = null) {
...
}
我的树枝模板有:
<a href="{{ path('content_display', {'type': type, 'id': entity.id}) }}">{{ entity.id }}. {{ entity.name }}</a><br />
所以我尝试添加|raw
和autoescape off标签here。但到目前为止没有运气,任何想法?
谢谢!
答案 0 :(得分:2)
/display/type={type}&id={id}
...不是有效的网址...您必须用?
替换第二个斜杠:
/display?type={type}&id={id}
也就是说,该路由适用于路径替换 - 而不是参数替换。
我非常肯定,如果您将其更改为/display
,当您尝试使用键值映射呈现网址时,Symfony会将这些作为参数添加,因为它可以&#39 ; t在路径中找到那些键。
编辑:
通过the documentation确认:
generate方法采用一个通配符数组来生成 URI。但是如果你传递额外的,它们将被添加到URI作为 查询字符串。