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,
]);
}
}