出于ajax的目的,我想访问集合的表单原型。如果集合中有数据,我可以得到它。但如果集合为空,则data-prototype返回一个空字符串。
即使集合仍然是空的,我如何返回原型?
表单字段:
->add('colors', CollectionType::class, array(
'entry_type' => JnTestColorColorType::class,
'entry_options' => array('label' => false),
'allow_add' => true,
'by_reference' => false,
'allow_delete' => true,
'required'=>false,
'prototype'=>true
))
观点:
{% if form.colors is defined %}
<h3>Colors</h3>
<ul class="colors" data-prototype="{{ form_widget(form.colors.vars.prototype)|e('html_attr') }}">
{# iterate over each existing tag and render its only field: name #}
{% for color in form.colors %}
<li>{{ form_row(color.color) }}</li>
{% endfor %}
</ul>
{% endif %}
答案 0 :(得分:1)
感谢@ Philippe-B-评论
您是否尝试过一次渲染集合字段以查看是否有任何区别?
我需要立即渲染所有字段以在我的视图中获取原型!
答案 1 :(得分:0)
正如在the documentation中提到的,有两种方法可以呈现data-prototype属性:
form_row(form.emails)
)。data-prototype="{{ form_widget(form.emails.vars.prototype)|e }}"
)。在这两种情况下,无论底层数据如何,都应该渲染原型。