0

preBind のフォームを変更する必要があります (Symfony 2.2 を使用)。

EventSubscriber の preBind 関数の一部を次に示します。

public function preBind(FormEvent $event)
{
    $form = $event->getForm();
    $form->get('locationType')->setData('default');
}

ただし、フォームを送信すると、この値は保存されません。手順がありませんか?新しいデータを伝播するために、FormEvent オブジェクト自体で setData を呼び出す必要がありますか?

これを理解するのに本当に役立つのは、このページの下部にある例で保護された関数 CustomizeForm($form, $positions) が完成していることを確認することです:

http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html

4

1 に答える 1

0

Cheesemacfly が示唆したように、イベント サブスクライバー内でこのデータを変更しようとするのではなく、コントローラー内でこのデータを変更することになりました。

于 2014-07-31T19:48:46.473 に答える