2017-01-14 16 views
0

私は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) }} 

ありがとうございます!

答えて

0

フィールドの近くにあるアスタリスクは、UIの機能に過ぎません。いくつかのフィールドを必要とするには、フィールドの検証設定を指定する必要があります。必要な情報を取得するためにSymfony validation documentationをチェックし、そのすべてが完璧Syliusで動作するはずです;)

一つ重要なこと - 制約を定義するとき、それはSyliusのデフォルトの検証グループであるgroupsパラメータにsyliusを設定することを忘れないでください。

関連する問題