渲染控制器动作时通过参数更改模板?

时间:2013-07-16 13:49:13

标签: php symfony twig

我有一个带有indexAction()的简单CRUD控制器来列出所有项目。现在我想在另一个模板中渲染此动作并更改。

{{ render(controller("MyBundle:MyEntity:index")) }}

是否有预定义的参数来更改模板?当然很容易传递这个值,但我不想重新发明轮子。

1 个答案:

答案 0 :(得分:1)

没有原生参数可以更改模板,但您可以将参数传递给render方法定义的操作...

{ render(controller('MyBundle:MyEntity:index', { 'template': 'MyBundle:ControllerName:foo.html.twig' })) }}

...并在控制器操作中使用它来决定要渲染的模板。

class MyEntityController
{
     public function indexAction($template = null)
     {
         // ... some code here

         $template = $template ? $template : 'MyBundle:ControllerName:index.html.twig';

         return $this->render(
             $template,
             array(
               'variable' => $variable,
             )
         );
     }