【发布时间】:2015-02-23 06:38:22
【问题描述】:
我有一个可以活跃或不活跃的用户列表。
我为所有用户创建了一个选择字段,其中包含用户可以拥有的角色。
在渲染过程中,我只为活跃用户渲染字段。
表单显示完成后我使用
{{ form_end(form, {'render_rest': false}) }}
避免渲染不必要的字段。那些渲染不足的字段会阻碍表单的验证。 我试图创建一个隐藏的选择字段但失败了。
以下是相关代码:
$form = $this->createFormBuilder()->getForm(); //create empty form
foreach ($HRsInThisProject as $key => $HR)
{
$form->add('roleOf_'.$key, 'choice', array('choices' => $rolesListForForm,'required' => true,'data' => $HR['role'], 'label' => false, ));
}
$form->add('save', 'submit', array('label' => 'Save'));
在我的树枝上我有:
<table>
<tr>
<td>User ID</td>
<td>Name</td>
<td>Role</td>
<td>Started</td>
</tr>
{% for key, HR in HRs %}
{% if HR.is_active %}
<tr>
<td>{{ key }}</td>
<td>{{ HR.name }}</td>
<td>{{ form_row(form['roleOf_' ~ key]) }}</td>
<td>{{ HR.started_at|date('Y-m-d H:i:s') }}</td>
</tr>
{% endif %}
{% endfor %}
</table>
<br>
{{ form_row(form.save) }}
{{ form_end(form, {'render_rest': false}) }}
这是我想要的(注意只显示相关字段):
另一方面,如果我使用:
{{ form_end(form) }}
然后代码可以工作,但我看到显示了不必要的字段:
我也尝试将不必要的字段设为非必填,但问题仍然存在。
有什么想法吗?
【问题讨论】:
标签: php forms validation symfony hidden-field