Bonjour,
J'ai un formulaire "AdvertType" qui fait appel à un sous formulaire "VehicleType" qui lui-même contient un champ de type "EntityType" que je voudrais scinder en deux groupes de cases à cocher dans mon template.
Voici le code probant dans "AdvertType" :
Celui dans "VehicleType" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ... class AdvertType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ... ->add('vehicle', VehicleType::class) ...
Et voici ce que je fais dans le template twig pour tenter d'afficher les équipements en fonction de leur appartenance (catégorie) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ... class VehicleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ... ->add('equipments', EntityType::class, array('class' => 'App\Entity\Equipment', 'multiple' => true, 'expanded' => true, 'choice_label' => 'equipment',)) ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 .. {{ form_errors(formAdvert.vehicle.equipments) }} {{ form_label(formAdvert.vehicle.equipments, 'Equipement du porteur', {'label_attr': {'class': 'foo'}}) }} {% for equipment in formAdvert.vehicle.equipments if equipment.belonging == 'Porteur' %} {{ form_row ( equipment ) }} {% endfor %} {{ form_errors(formAdvert.vehicle.equipments) }} {{ form_label(formAdvert.vehicle.equipments, 'Equipement de la cellule', {'label_attr': {'class': 'foo'}}) }} {% for equipment in formAdvert.vehicle.equipments if equipment.belonging == 'Cellule' %} {{ form_row ( equipment ) }} {% endfor %} ...
Lors de la génération du template, j'obtiens l'erreur :
Je suppose que ça provient de ma condition if qui accède à la valeur d'un attribut d'un objet embarqué dans un formulaire lui-même embarqué.Neither the property "belonging" nor one of the methods "belonging()", "getbelonging()"/"isbelonging()"/"hasbelonging()" or "__call()" exist and have public access in class "Symfony\Component\Form\FormView".
Quelqu'un aurait une idée de la manière de procéder pour réaliser ce que je voudrais?
Merci d'avance pour votre aide.
Partager