私はRegisterページをオーバーライドしています(Customerオブジェクトをオーバーライドします)。 ChoiceType(3つのラジオボタン)を展開した "Type"を追加しました。また、defaultAddressフィールド(3つのフィールドを追加したもの)を追加しました。 フォームを表示すると、これらのフィールドには赤い星印が表示されますが、フォームを送信すると、これらのフィールドに何も入力しないとフォームが送信され、これらのフィールドは空です。ここでSyliusのカスタムフィールドはフォームで検証されません
が私のコードです:
CustomerRegistrationTypeExtension.php:
$builder->add('type', ChoiceType::class, [
'choices' => array('Particulier' => Customer::TYPE_PARTICULIER, 'Professionnel' => Customer::TYPE_PRO, 'Projet à but non lucratif' => Customer::TYPE_PROJET),
'expanded' => true,
'label' => 'Vous êtes',
'choice_attr' => array('onclick' => 'alert(\"click\")')
])
->add('siren', TextType::class)
->add('denomination', TextType::class)
->add('defaultAddress', AddressType::class);
AddressTypeExtension.php
$builder->add('showOnMap', CheckboxType::class)
->add('geocodeLat', HiddenType::class)
->add('geocodeLng', HiddenType::class);
_address.html.twig:
{{ form_row(form.showOnMap, {'label' : 'address.showMap.label'}) }}
{{ form_row(form.geocodeLat)}}
{{ form_row(form.geocodeLng)}}
_for m.html.twig
{{ form_row(form.type) }}
ありがとうございます!