2013-07-05 26 views
-1

我是Symfony(以及PHP)的新手。我目前在我的Controller中有一个方法indexAction,它向索引视图(index.html.twig模板)呈现一个对象数组($ results) - 这部分工作。symfony2将动作数组呈现给1个以上的模板

我想在另一个视图页中使用我在index.html.twig中呈现的SAME数组。是否可以将数组呈现给多个模板?我试着添加第二个渲染语句,但它不起作用(我得到一个错误,说在第二个模板中调用的数组不存在 - 因此只有第一个渲染语句正在工作)。我想过将indexAction的内容复制并粘贴到get_stuffAction中(两个方法在同一个控制器中),但我认为这可能不是继续进行的最佳方法(大量冗余代码)。

return $this->render('TryBundle:Try:index.html.twig', array('results'=>$results)); 
return $this->render('TryBundle:Try:get_stuff.html.twig', array('results'=>$results)); 

如果有人知道如何渲染阵列,以多个视图,或者如果我能以某种方式使用的indexAction函数创建数组中的get_stuffAction功能只是想知道。

谢谢你的时间!

+0

是的,但你不能返回用户多个视图,每个请求只有一个。如果你想要,你可以在另一个视图中包含一个视图,通过你传入第一个视图的同一个数组。 – alex88

+0

这是一个想法。我怎样才能在另一个视图中包含相同的数组?我已经在TWIG中尝试过“仅仅使用它”,但是我得到了一个“变量不存在”的错误。 –

+0

首先,这两个视图是否合并到同一个控制器调用中?这样你可以包含另一个模板作为包含函数的第二个参数传递数组 – alex88

回答

1

为什么不在控制器中创建一个方法来获取结果,然后在每个操作中只需调用该方法就可以获得所需的数据。

+0

管理得到这个工作。谢谢你的建议。 –