将变量注入扩展的树枝form_theme

时间:2015-06-10 13:26:36

标签: symfony twig

我有一个动态表单来创建,我想扩展一个小部件,以便将其显示为<tr>。 事实是该表的每一列都是一个包含一些字段的动态组。

我想做的就是迭代myform_widget中的群组:

这是表头

<table id="myforms-table" class="table">
    <thead>
    <tr>
        {% for group in groups %}<th>{{ group.label }}</th>{% endfor %}
    </tr>
    </thead>
    <tbody data-prototype="{{ form_widget(form.myforms.vars.prototype)|e }}">

    </tbody>
</table>

这是myform块:

{% block myform_widget %}
    <tr>

        {% for group in groups %}
            <td>
                {% for field in group.fields %}
                    {{ form_row( form.children.(field.codeField) ) }}
                {% endfor %}
            </td>
        {% endfor %}

    </tr>
{% endblock %}

我得到例外Variable "groups" does not exist。 我假设form_theme无法访问groups变量,但我怎样才能访问它? 强文 谢谢你/

1 个答案:

答案 0 :(得分:1)

我找到了一个简单的解决方案。

在我的表单类型文件中,我添加了groups attr,如下所示:

public function buildView(FormView $view, FormInterface $form, array $options)
{
    $view->vars['groups'] =  $this->groups;
}

现在我可以通过以下方式检索它:

{% block partition_widget %}
    <tr>
        {% for group in form.vars.groups %}
            <td>
                {% for field in group.fields %}
                    {{ form_row(  attribute(form, field.codeField) ) }}
                {% endfor %}
            </td>
        {% endfor %}
    </tr>
{% endblock %}