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.







Répondre avec citation
Partager