ユーザーエンティティとアクティビティがあります。ユーザーには多くのアクティビティがあります。フォームを作成しました->ユーザーとtheris activitis(チェックボックス)のリスト。
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();