Bonjour les amis

Voila j'ai 3 entités

Une entité Dialecte

Une entité Exercice

Une entité ExerciceDialecte

il y'a une relation ManyToOne entre ExerciceDialecte et Dialecte par propiété $dialecte dans (ExerciceDialecte)

cette propriété est invérsé par la propriété $exerciceDialectes dans (Dialecte)

il y'a une relation ManyToOne entre ExerciceDialecte et Exercice par propiété $dialecte dans (ExerciceDialecte)

cette propriété est invérsé par la propriété $exerciceDialectes dans (Exercice)

Donc maintenant je souhaite que lorsque je crée un Exercice je puisse créer le l'entrée ExerciceDialecte qui correponds

Et donc dans ExerciceType, j'ai ajouté le champ $exerciceDialectes

Problème c'est que dans ma vue, quand je demande l'affichage du formulaire, je ne vois pas les champs qui sont lié au ExerciceDialecteType

Comment puis-je faire pour enregistrer les deux à formulaire à la fois ?

Voici mon code :

{{ form_row(exercice_form.exerciceDialectes, {'label': "Exercice Dialecte", 'attr': {'class': 'form-controle'}}) }}
class ExerciceDialecteType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
         ->add('exercice', EntityType::class,
                [
                    'class' => Exercice::class,
                    'choice_label' => 'id'
                ])
         ->add('dialecte', EntityType::class,
                [
                    'class' => Dialecte::class,
                    'choice_label' => 'id'
                ])
         ->add('exerciceBase', EntityType::class,
                [
                    'class' => ExerciceBase::class,
                    'choice_label' => 'id'
                ])
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => ExerciceDialecte::class,
        ]);
    }
}
class ExerciceType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('category', EntityType::class,
                [
                    'class' => CategoryExercice::class,
                    'choice_label' => 'nom',
                    'label' => false
                ]
            )           
            ->add('exerciceDialectes', CollectionType::class, array(
                'entry_type' => ExerciceDialecteType::class,
                'label' => false,
                'allow_add' => true,
                'by_reference' => false,
                'allow_delete' => true,
            ))

            ->add('niveau', EntityType::class,
                [
                    'class' => Niveau::class,
                    'choice_label' => 'nomNiveau',
                    'label' => false
                ]
            )
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Exercice::class,
        ]);
    }
}

Aucune réponse