【问题标题】:Silex redirect from Twig template来自 Twig 模板的 Silex 重定向
【发布时间】:2013-11-04 21:18:21
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 我认为你必须调用:$this['kernel']->terminate($request, $response);

标签: php symfony redirect twig silex


【解决方案1】:

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

例如:

{% if somecondition %}
<script>window.location.href = {{yourRoute}}</script>
{% endif }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 2023-03-25
    • 2012-10-15
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多