我知道使用{% render() %}
自动强制发送一个新的请求对象,但我很好奇是否有办法将原始请求作为参数传递?
{% render('some_action', {'originalRequest': app.request}) %}
这似乎对控制器没有任何作用:
public function actionAction($originalRequest = null)
{
// $originalRequest ends up just being null
}
我假设它是因为路线的设置方式:
some_action:
pattern: /stuff/
defaults: { _controller:SomeApp:Controller:action }
我想像这样的数据显然不能与 URL 分开,所以某种方式将数据传递给可呈现的 URL,有什么办法吗?
编辑(解决方案)
从长远来看,解决方案非常简单,正如下面的 Petre Pătraşc 所展示的,在 Twig 中,我需要做的就是直接调用控制器,通过这种方法,我可以传入对象(例如请求对象)和数组, 而不是 URL 中的文本值。
要在控制器中执行大致相同的想法,利用forward()
路由器中的方法,将允许类似的效果,而无需将用户重定向到另一个页面。