【问题标题】:How to render twig macro in controller symfony 2如何在控制器 symfony 2 中渲染树枝宏
【发布时间】:2023-03-06 21:12:01
【问题描述】:

我不知道如何在 Symfony 2 控制器中渲染宏。这就是我可以渲染树枝模板的方式

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

所以我寻找类似的东西,但用于渲染树枝宏。感谢您的任何建议!

【问题讨论】:

    标签: php symfony macros twig


    【解决方案1】:

    Twig 宏是模板内的东西。每当您渲染执行宏的模板时,它们就会运行。

    【讨论】:

    • 你可以(或者至少,你可以在 2.5 中)直接在 $controller->render() 调用中调用宏,我以前做过,但我不能记住语法 >.
    【解决方案2】:

    只需创建另一个“包装”模板,其中只有那个宏。类似的东西

    ma​​cro.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]);
    }
    

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多