Symfony2路由注释得到url编码



我在Symfony2.5中使用了注释,我正在努力输出一个漂亮的干净的url,像这样:

.../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和自动转义off标签。但目前还没发现,有什么想法吗?

谢谢!

/display/type={type}&id={id}

…不是一个有效的URL…您必须将第二个斜杠替换为?:

/display?type={type}&id={id}

也就是说,该路由用于路径替换——而不是参数替换。

我很确定,如果您将其更改为简单的/display,当您尝试用键值映射呈现URL时,那么Symfony将添加这些参数,因为它无法在路径本身中找到这些键。

编辑:

通过文档确认:

generate方法接受一个通配符值数组来生成URI。但是如果您传递了额外的值,它们将作为一个查询字符串。

最新更新