首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向扩展小枝form_theme中注入变量

向扩展小枝form_theme中注入变量
EN

Stack Overflow用户
提问于 2015-06-10 13:26:36
回答 1查看 273关注 0票数 1

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

我所要做的就是像这样迭代myform_widget中的组:

这是表头

代码语言:javascript
运行
复制
<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块:

代码语言:javascript
运行
复制
{% 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变量,但是我如何才能访问它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-10 14:35:54

我找到了一个简单的解决办法。

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

代码语言:javascript
运行
复制
public function buildView(FormView $view, FormInterface $form, array $options)
{
    $view->vars['groups'] =  $this->groups;
}

现在我可以用:

代码语言:javascript
运行
复制
{% 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 %}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30757770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档