如何在控制器symfony 2中渲染树枝宏

时间:2014-11-22 11:24:27

标签: php symfony macros twig

我无法弄清楚如何在Symfony 2控制器中渲染宏。这就是我如何渲染树枝模板

$this
  ->get("twig")
  ->render("AcmeBundle:Product:table.html.twig", array(
    "product" => $product
  ))
;

所以我搜索类似的东西,但是渲染一个树枝宏。感谢任何建议!

2 个答案:

答案 0 :(得分:2)

Twig宏是模板中的东西。只要渲染执行宏的模板,就会运行它们。

答案 1 :(得分:0)

只需创建另一个“包装”模板,即可在其中仅包含该宏。像

macro.html.twig文件

{% macro sample(item) %}
   {# some code here #}
{% endmacro sample #}

sample_macro_wrapper.html.twig

{% from 'macro.html.twig' import sample %}
{{ sample(item) }}

controller.php

public function someAction()
{
      // ...........
      $renderedMacro = $this->get('twig')
           ->render('sample_macro_wrapper.html.twig', ['item' => $item]);
}