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 :

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 entité Price :

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;
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
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 %}
Il est à savoir que unique_season contient des entités de Season :

Dans mon controller :

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,]);
En exécutant ce code, j'obtiens l'erreur suivante :


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".
Or, dans mon entité Season, j'ai bien une fonction qui me retourne l'id :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
    public function getId(): ?int
    {
        return $this->id;
    }
Quelqu'un aurait une idée de la manière dont je pourrais résoudre ceci?

Merci d'avance pour votre aide