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 :
De cette manière, tout fonctionne correctement.
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 %}
Par contre, si je remplacepour 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 {{ form_rest(form) }}
alors je reçois l'erreur suivante :
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 %}
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.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".
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.
Partager