3

给定一个发送到 twig 模板的变量数组,例如:

$form   = $this->createForm( new ServiceItemType()
                           , $entity
                           , array( 'attr'=>
                                     array(
                                          'em'    => $this->EM()
                                         ,'group' => true
                           ) ) );

我想捕获变量以便在树枝中轻松访问。然而:

{% for key, value in form.vars.attr %}
    {% set key = value %}
{% endfor %}

重新映射 for 循环中的关键变量。

树枝反对:

{% for key, value in form.vars.attr %}
    {% set {{key}} = value %}
{% endfor %}

据我所知,堆栈似乎从未设置过地址。有谁知道,请指出如何完成这个变量赋值?

4

1 回答 1

5

我知道这种语法有效

{% render "..." with {(key): value} %}

您是否尝试过以下语法?截至 3 月 22 日星期五,此语法不起作用,因此您需要使用变通方法。

{% set (key) = value %}

另一种方法是包含一个模板并通过和form.vars.attr.

{% include "YourAwesomeBundle:Controller:template.html.twig" with form.vars.attr %}

您还可以使用合并函数form.vars.attr与另一个数组合并。

{% set vars = {} %}
{% set vars = vars|merge(form.vars.attr) %}
{% include "YourAwesomeBundle:Controller:template.html.twig" with vars %}

在包含的模板中,您将能够使用变量emgroup.

于 2013-03-22T04:37:11.500 回答