简体   繁体   English

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

[英]How to render twig macro in controller symfony 2

i can't figure out, how to render a macro in Symfony 2 controller. 我无法弄清楚,如何在Symfony 2控制器中渲染宏。 This is how i can render a twig template 这就是我如何渲染树枝模板

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

So i searching for something similar, but for rendering a twig macro. 所以我搜索类似的东西,但渲染一个树枝宏。 Thx for any suggestions! 感谢任何建议!

Twig macro's are something inside a template. Twig宏是模板中的东西。 They are run whenever you render a template executing the macro. 只要渲染执行宏的模板,它们就会运行。

Just create another "wraper" template, which would have only that macro in it. 只需创建另一个“包装器”模板,该模板中只包含该宏。 Something like 就像是

macro.html.twig file macro.html.twig文件

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

sample_macro_wrapper.html.twig sample_macro_wrapper.html.twig

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

controller.php Controller.php这样

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM