我正在创建这样的表单:
foreach ($users as $user) {
$builder->add('user_' . $user->getId(), NumberType::class, [
'label' => $user->__toString(),
'required' => false,
'mapped' => false,
'constraints' => [...],
]);
}
在树枝上,我想在表格中显示表格:
<tbody>
{% for user in users %}
{% set userId = 'user_' ~ user.getID() %}
<tr>
<td>{{ form_label(form.userId) }}</td>
<td>
{{ form_widget(form.userId) }}
</td>
</tr>
{% endfor %}
</tbody>
但出现错误:
属性“ userId”或方法“ userId()”,“ getuserId()” /“ isuserId()”或“ __call()”都不存在,并且在类“ Symfony \ Component \ Form \”中没有公共访问权限FormView”。
我该如何解决这个问题?
我使用attribute函数解决了我的问题:
<tbody>
{% for user in users %}
{% set userId = 'user_' ~ user.getID() %}
<tr>
<td>{{ form_label(attribute(form, (userId) )) }}</td>
<td>
{{ form_widget(attribute(form, (userId) )) }}
</td>
</tr>
{% endfor %}
</tbody>
只需将树枝中的表格循环即可。
我认为这可能对您有所帮助(但未经测试)
<tbody>
{% for user in form %}
<tr>
<td>{{ form_label(user) }}</td>
<td>{{ form_widget(user) }}</td>
</tr>
{% endfor %}