2
私はform collection
を持っていて、field1
の値に応じてフォームを送信した後にfield2
に設定します。 field2
はフォームでは編集できませんが、必須です。symfony 3:フォームを送信した後に値を設定
私はすべてのFormEvent
(FormEvents試してみました::)が、エラーを取得:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'field2' cannot be null
// AppBundle/Form/MyFormType.php
// ...
$builder->addEventListener(FormEvents::POST_SUBMIT, function(FormEvent $even) {
$data = $event->getData();
$form = $event->getForm();
if (isset($data['field1'])) { // isset
$field2 = $this->container->get('repository')->find($data['field1'])->getValue(); // service works
$data['field2'] = $field2; // !!! doesn't work !!!
$data->setField2($field2); // !!! doesn't work !!!
}
});
は私が間違って何をやっているの?前もって感謝します!
のvar_dumpあなたのフィールド2を試してみて、あなたは 'g9m29 @ $フィールド2 = 'でtestValue' をごdbテーブル – g9m29
を投稿してくださいすることができます;'どちらか動作しません。テーブルのフィールド名は 'field2'です。 –
$ data ['field2'] = $ field2; $ data-> setField2($ data); ! – g9m29