gpt4 book ai didi

forms - Symfony2 - 集合类型在我的 View 中显示两次

转载 作者:行者123 更新时间:2023-12-05 00:41:31 25 4
gpt4 key购买 nike

我有一个带有集合的表单,当我使用以下语法时,我可以正确地看到它:

form_row(form.items)

然后当我尝试自己渲染它时,它被复制了。

这是我的 Twig 文件中的代码:

{{ form_errors(form) }}
{{ form_start(form) }}

... some fields here ...

<div id="{{ form.items.vars.id }}" class="collection items" data-prototype="{{ form_widget(form.items.vars.prototype)|e }}">
<h3>{{ form_label(form.items) }}</h3>
<a href="#" class="add_link">Add</a>
{% for item in form.items %}
{{ form_row(item) }}
{% endfor %}
</div>

... some other fields here ...

{{ form_end(form) }}

这是我的表单对象中的代码:

    $builder->add('items', 'collection', array(
'type' => new ItemType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'required' => true,
));

这里是我的输出:

<!-- This is the one I need, I removed the prototype for the sake of clarity -->
<div id="bundle_data_items" class="collection items" data-prototype="...">
<h3>
<label class="required">Items</label>
</h3>
<a href="#" class="add_link">Add</a>
</div>
<!-- This one is automatically added. The prototype is empty -->
<div>
<label class="required">Items</label>
<div id="bundle_data_items" data-prototype=""></div>
</div>

你知道为什么会这样吗?

我跟着 documentation .我错过了什么吗?

编辑:

只有当我的收藏为空时才会发生这种情况

最佳答案

我找到了解决办法。

事实证明,当集合为空时,它的渲染永远不会发生。我可以使用 sjagr 解决方案,但是由于我想自动渲染某些字段,所以我不能使用它。

所以我的解决方案如下:

{{ form_errors(form) }}
{{ form_start(form) }}

... some fields here ...

<div id="{{ form.items.vars.id }}" class="collection items" data-prototype="{{ form_widget(form.items.vars.prototype)|e }}">
<h3>{{ form_label(form.items) }}</h3>
<a href="#" class="add_link">Add</a>
{% for item in form.items %}
{{ form_row(item) }}
{% else %}
{% do form.items.setRendered %}
{% endfor %}
</div>

... some other fields here ...

{{ form_end(form) }}

关于forms - Symfony2 - 集合类型在我的 View 中显示两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29987139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com