我正在从 Symfony 2.0 升级到 2.3。由于我们有一个单页应用程序,因此我们定义了带有哈希的路由。
通过注解配置的路由:
/**
* @Route("/app#orders/{id}", name="app_order")
*/
我们使用 Twig 生成电子邮件并在 Twig 模板中使用这些路由:
<a href="{{ url('app_order', { 'id': '123' }) }}">View order</a>
在升级之前,这工作正常。升级后,将#
被编码为,%23
但斜线保持不变。这当然会在电子邮件中生成无效的 URL。
为什么只有哈希编码而不是斜杠?它应该是全部或全部。除了进行字符串替换之外,我还有什么选择?
我已经尝试过但无济于事的事情:
- 将自动转义设置为 false
{% autoescape false %}
- 使用原始
{{ url(...)|raw }}
- 结合使用 raw 和 autoescape=false