Bonjour,

J'utilise CraueFormFlowBundle pour la création d'un formulaire en plusieurs étapes. J'en ai deux. Donc, dans mon template, j'ai ceci :

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
34
35
 
{% extends "base.html.twig" %}
 
{% form_theme form 'bootstrap_4_layout.html.twig' %}
 
 
{% block stylesheets %} 
     {{ parent () }} 
     <link rel = "stylesheet" href = "//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.0/css/bootstrap-datepicker.css"> 
 {% endblock %}
 
{% block body %}
 
    <h1>Création de votre annonce</h1>
    {{ form_start(form) }}
        {{ form_errors(form) }}
 
        {% if flow.getCurrentStepNumber() == 1 %}
 
            ...
            Mise en forme de mes différents champs lors de la première étape
 
        {% endif %}
 
    {% if flow.getCurrentStepNumber() == 2 %}  
 
    <div>
 
        <h4>Prix</h4>
 
        {{ form_rest(form) }}
 
    </div>
 
    {% endif %}
De cette manière, tout fonctionne correctement.

Par contre, si je remplace pour mettre en forme les différents champs lors de l'étape 2, de cette manière par exemple,

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
34
35
 
    {% if flow.getCurrentStepNumber() == 2 %}  
 
    <div>
 
        <h4>Prix</h4>
 
        {% set i = 0 %}
 
        {% for price in form.prices %}
 
            {{ form_label(form.price.price, 'Prix', {'label_attr': {'class': 'foo'}}) }}
            {{ form_errors(form.price.price) }}
            {{ form_widget(form.price.price) }}
 
            {{ form_label(form.price.duration, 'Durée', {'label_attr': {'class': 'foo'}}) }}
            {{ form_errors(form.price.duration) }}
            {{ form_widget(form.price.duration, { ‘disabled’:’disabled’ }) }}
 
            {{ form_label(form.price.season, 'Saison', {'label_attr': {'class': 'foo'}}) }}
            {{ form_errors(form.price.season) }}
            {{ form_widget(form.price.season, { ‘disabled’:’disabled’ }) }}
 
 
            <button type="button" id="prices_advert_prices_{{ i }}" class="btn-remove">
                Supprimer cette durée
            </button>
 
            {% set i = i + 1 %}
 
        {% endfor %}
 
    </div>
 
    {% endif %}
alors je reçois l'erreur suivante :

Neither the property "price" nor one of the methods "price()", "getprice()"/"isprice()"/"hasprice()" or "__call()" exist and have public access in class "Symfony\Component\Form\FormView".
Apparemment, l'erreur provient du fait que Twig ne parvient pas à accéder aux attributs d'objets (price) faisant partie d'une collection (prices) appartenant à l'objet principal (advert) sur lequel repose le formulaire.

Quelqu'un aurait une idée sur la manière dont il faut procéder pour mettre en forme ces champs?

Merci d'avance pour votre aide.