我正在尝试设置表单的自定义symfony表单集合原型组件。我正在引用适当的文档 https://symfony.com/doc/3.3/form/form_customization.html#how-to-customize-a-collection-prototype
使用以下
设置表单集合 <table class="table table-bordered" data-prototype="{{ form_row(form.quoteItemDeliverables.vars.prototype)|e('html_attr') }}">
<caption>Deliverables</caption>
<tr>
<th>Quantity</th>
<th>Date Required</th>
</tr>
{% for itemDeliverable in form.quoteItemDeliverables %}
<tr>
<td>{{ form_widget(itemDeliverable.quantity) }}</td>
<td>{{ form_widget(itemDeliverable.dateRequired) }}</td>
</tr>
{% endfor %}
</table>
使用以下
设置引用原型的树枝块{% form_theme form _self %}
{% block _uniflytebundle_quoteitem_quoteItemDeliverables_entry_row %}
<tr>
{#<td>{{ form_widget(form.quoteItemDeliverables.vars.prototype.quantity) }}</td>#}
</tr>
{{ dump(form.children["quoteItemDeliverables"]) }}
{% endblock %}
dump();正在返回以下错误
Key "quoteItemDeliverables" for array with keys "quantity, dateRequired" does not exist.
我做错了什么?
如果我转储(表格);我得到显示子项的表单对象,“quoteItemDeliverables”和“prototype”元素
有人可以指出我如何访问各种表单属性的正确方向吗?尝试在原型的集合表单中执行所做的操作。以下是工作形式的集合元素。
<td>{{ form_widget(itemDeliverable.quantity) }}</td>
<td>{{ form_widget(itemDeliverable.dateRequired) }}</td>
我想对原型树枝块使用相同的东西,但使用类似
的东西form_widget(itemDeliverable.prototype.dateRequired)
不起作用。我怎么能这样做?
提前感谢您投入的时间和精力。
答案 0 :(得分:0)
在树枝块内,form
不是指“全局”表单,而是指与您的集合条目对应的子表单。这就是为什么dump
调用产生的错误表明该数组有quantity
和dateRequired
个键,但没有quoteItemDeliverables
。
因此你应该拥有的东西更像是:
{% block _uniflytebundle_quoteitem_quoteItemDeliverables_entry_row %}
<tr>
<td>{{ form_widget(form.quantity) }}</td>
<td>{{ form_widget(form.dateRequired}}</td>
</tr>
{% endblock %}