1

首先,我知道这是一件可怕的事情,应该只在控制器逻辑中完成,但我想做的是在 Twig 中创建一个自定义重定向标签,以触发 Silex 重定向。

我有一个自定义节点,将以下内容输出到 doDisplay 模板中:

return $this->getEnvironment()->getExtension('silex')->getApp()->redirect('/', 301);

基本上,这得到了 Twig 环境和我创建的扩展,它有一个 getApp 方法,该方法返回 Silex $app 变量,其中包含重定向方法。

但这只会将 Array() 返回到屏幕。有什么建议么?

4

1 回答 1

2

你要求做的事情是不可能的。Response当您已经发送200响应以及树枝模板作为正文时,您不能向客户端发送对象。您可以做的是meta在页面中注入重定向标签或使用 JS:

例如:

{% if somecondition %}
<script>window.location.href = {{yourRoute}}</script>
{% endif }
于 2013-11-08T10:08:25.843 回答