エンティティ(CustomerVats)のフォーム(CustomerVatsType)があります。このエンティティには複数のバット行が含まれている列(vats)があります。これらの行はjson形式で保存されます。このフォームでは、顧客はデフォルトのVATを選択できます。これは、単位列に保存された行のインデックス "default"に保存されます。symfony 3ラジオ入力名の変更
しかし、フォームの構造上、無線入力名が「フォーム[vats] [0] [set_default]」であるという問題があります。しかし、無線入力が正しく機能するには、すべての入力に対して同じ入力が必要です(例:形式[vats] [set_default])。私はtwigファイルで名前を変更できますが、フォームクラスはこれを理解できません。
このような場合はどうすればよいですか。 Symfonyでもサポートしていますか?ここに私のフォームクラスがあります。
class VatsType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('vats', CollectionType::class, array(
'entry_type' => VatType::class,
'allow_add' => false,
'allow_delete' => false,
'prototype' => false,
'by_reference' => false,
)
)
->add('vatSumbit', SubmitType::class);
}
}
class VatType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('country_id', HiddenType::class, array('label' => false))
->add('vat_high', HiddenType::class, array('label' => false))
->add('vat_low', HiddenType::class, array('label' => false))
->add('vat_zero', HiddenType::class, array('label' => false))
->add('vat_none', HiddenType::class, array('label' => false))
->add('set_default', RadioType::class, array('label' => false))
->add('set_show', RadioType::class, array('label' => false));
}
}
私はtwigでフィールド名を設定すると、フォームフィールドでレスポンスフィールドをバインドできます。これを行うにはhandleRequestを使用してください。 –
@AshishAwasthi。 。フィールド名を変更して、投稿にフィールドが存在しないというエラーを出しました。 handleRequestで投稿データを変更するにはどうすればいいですか?FormEventSubscriberが必要ですか? 。私が参照することができるいくつかのリソースを提供できますか? –