首先,我知道这是一个可怕的事情,应该只在控制器逻辑中完成,但我想要做的是在Twig中创建一个自定义重定向标记来激发Silex重定向。
我有一个自定义节点,可将以下内容输出到doDisplay模板中:
return $this->getEnvironment()->getExtension('silex')->getApp()->redirect('/', 301);
基本上这会得到Twig环境和我创建的扩展,它有一个getApp方法,它返回包含重定向方法的Silex $ app变量。
但这只会将Array()返回到屏幕。有什么建议吗?
答案 0 :(得分:2)
你要做的事是不可能的。当您已经发送Response
响应以及树枝模板作为正文时,您无法向客户端发送200
对象。您可以做的是将meta
重定向标记注入页面或使用JS:
例如:
{% if somecondition %}
<script>window.location.href = {{yourRoute}}</script>
{% endif }