私のプロジェクトには、Event、OrganizerProfile、Userという3つのドキュメントがあります。Symfony3:ネストされた(オプションの)フォームを検証する
ユーザーは複数のOrganizerProfile(Facebookの「ページ」のようなものです)とイベントを持つことができます。
ユーザーがイベントを作成したとき、彼はイベントに「OrganizerProfile」を割り当てることができます(ユーザーAlbertoが「Company A」のイベント「イベントX」を作成します)。
OrganizerProfileType.php
class OrganizerProfileType extends AbstractType{
public function buildForm(FormBuilderInterface $builder, array $options){
$builder
->add('email', EmailType::class)
->add('name', TextType::class)
->add('description', TextType::class, ['required' => false])
...
EventType.phpフィールド "profile_list" のユーザーで
class EventType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options)
{
$profileChoices = ... //List of existing profiles
$builder
->add('profile_list', ChoiceType::class, [
'choices' => $profileChoices,
'required' => false,
'mapped' => false,
])
->add('profile', OrganizerProfileType::class, [
'required' => true,
])
->add('title', TextType::class, ['required' => false])
->add('description', TextType::class, ['required' => false])
...
:
これを実現するためには、私はこのフォームを作成しました既存のOrganizerProfilesを見つけることができます。ユーザはその1つを選択してイベントに割り当てることができますが、ユーザが既存のプロファイルを選択しない場合は、「プロファイル」フォームに情報を挿入する必要があります。
私は「オプション」のプロファイルフォームを作成し、ユーザーが既存のプロファイルを選択しない場合にのみ必要とします。
どうすればいいですか?ありがとう
[提出されたデータに基づいて検証グループを選択する](http://symfony.com/doc/current/form/data_based_validation.html) – Matteo