Bonjour,
Dans un template de formulaire d'enregistrement d'une annonce, je tente d'accéder à un attribut d'un objet fils d'un objet faisant partie d'une collection appartenant à ladite annonce :
Dans mon entité Advert :
Dans mon entité Price :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 /** * @ORM\OneToMany(targetEntity="App\Entity\Price", mappedBy="advert", cascade={"persist"}, orphanRemoval=true) */ private $prices;
Dans mon template twig, je boucle sur toutes les saisons, et pour chaque saison, je voudrais afficher tous les prix qui y correspondent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 /** * @ORM\ManyToOne(targetEntity="App\Entity\Season", inversedBy="prices") * @ORM\JoinColumn(nullable=false) */ private $season;
Il est à savoir que unique_season contient des entités de Season :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 {% for season in unique_seasons %} <h4>Saison {{ season.season }}</h4> {% for price in formPricesAdvert.prices %} {% if price.season.id == season.id %} <li> {{ form_label(price.price, 'Prix', {'label_attr': {'class': 'foo'}}) }} {{ form_errors(price.price) }} {{ form_widget(price.price) }} {{ form_label(price.duration, 'Durée', {'label_attr': {'class': 'foo'}}) }} {{ form_errors(price.duration) }} {{ form_widget(price.duration) }} {{ form_label(price.season, 'Saison', {'label_attr': {'class': 'foo'}}) }} {{ form_errors(price.season) }} {{ form_widget(price.season) }} <button type="button" class="btn-remove"> Supprimer cette durée </button> </li> {% endif %} {% endfor %} {% endfor %}
Dans mon controller :
En exécutant ce code, j'obtiens l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ... foreach ($advert->getPeriods() as $key => $value) { $seasons[] = $value->getSeason(); } $unique_seasons = array_unique($seasons); ... return $this->render('road_trip/createPricesAdvert.html.twig', ['formPricesAdvert' => $formPrices->createView(), 'unique_seasons' => $unique_seasons, 'editMode' => $editMode,]);
Or, dans mon entité Season, j'ai bien une fonction qui me retourne l'id :
Neither the property "id" nor one of the methods "id()", "getid()"/"isid()"/"hasid()" or "__call()" exist and have public access in class "Symfony\Component\Form\FormView".
Quelqu'un aurait une idée de la manière dont je pourrais résoudre ceci?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public function getId(): ?int { return $this->id; }
Merci d'avance pour votre aide
Partager