Forms 如果未选中任何内容,则不会更新Symfony2形式的复选框
我有用户实体和活动。用户有很多活动。我已经创建了一个表单->用户和活动列表(复选框) 复选框被选中 0-复选框未选中 当我有上述数据并按下保存按钮时,一切正常,但当我想取消选中所有活动时:Forms 如果未选中任何内容,则不会更新Symfony2形式的复选框,forms,symfony,checkbox,Forms,Symfony,Checkbox,我有用户实体和活动。用户有很多活动。我已经创建了一个表单->用户和活动列表(复选框) 复选框被选中 0-复选框未选中 当我有上述数据并按下保存按钮时,一切正常,但当我想取消选中所有活动时: User, ACT1, ACT2, ACT3 Jhon---0--------0--------0 (我按下保存按钮)活动未更新$_帖子是空的,我想控制器中没有bindig。 form_小部件以以下方式生成单个复选框: input type="checkbox" name="users_activitie
User, ACT1, ACT2, ACT3
Jhon---0--------0--------0
(我按下保存按钮)活动未更新$_帖子是空的,我想控制器中没有bindig。
form_小部件以以下方式生成单个复选框:
input type="checkbox" name="users_activities[users][0][activities][1][enabled]" value="1" checked="checked"
你知道怎么解决吗
视图:
控制器:
$form->bindRequest($this->getRequest());
foreach ($form->get('users') as $userF) {
foreach ($userF->get('activities') as $actF) {
$act = $actF->getData();
$em->persist($act);
}
}
$em->flush();
您可以发布呈现表单和控制器(或至少是操作)的php代码吗?在迭代之前,您应该检查
$form->get('users')
是否为空。
{%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();