我有用户实体和活动。用户有很多活动。我创建了一个表单 -> 用户列表和活动列表(复选框)。
User, ACT1, ACT2, ACT3
Jhon---x--------0--------0
x- 复选框被选中
0-复选框未选中
当我有上述数据并按下保存按钮时,一切工作正常,但是当我想取消选中所有活动时:
User, ACT1, ACT2, ACT3
Jhon---0--------0--------0
(我按保存按钮)活动没有更新。$_POST 是空的,我认为控制器中没有绑定。单个复选框由 form_widget 以这种方式生成:
input type="checkbox" name="users_activities[users][0][activities][1][enabled]" value="1" checked="checked"
知道如何解决吗?
看法:
{%for actv in user.activities %}
{{ form_widget(actv.enabled) }}
{%endfor%}
控制器:
$form->bindRequest($this->getRequest());
foreach ($form->get('users') as $userF) {
foreach ($userF->get('activities') as $actF) {
$act = $actF->getData();
$em->persist($act);
}
}
$em->flush();