Bonjour,

Dans un template, je cherche à cacher des champs de type file au cas où on est en mode édition du formulaire. Pour ce faire j'ai procédé comme suit :

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
36
37
 
    <h4>Photos</h4>
 
    <ul class= "photos" data-prototype= " {{ form_widget ( form.photos.vars.prototype )| e ( 'html_attr' ) }} " >
        {# iterate over each existing photo and render its only field: name #}
 
        {% set i = 0 %}
 
        {% for photo in form.photos %}
 
            <li id="li_photo_{{ i }}"> 
 
                {% if editMode == 1 %}
 
                    {{ form_row ( photo.file, { 'attr': {'class': 'hidden-row'} }) }}
 
                {% else %}
 
                {{ form_row ( photo.file ) }}
 
                {% endif %}
 
                {{ form_row ( photo.mainPhoto ) }}
                {{ form_row ( photo.name ) }}
 
                {% if editMode and form.photos %}
 
                    <img id="photo_{{ i }}"  src="{{ asset('uploads/photos/') }}{{ recordedPhotosNames[i] }}" width="100" alt="Photo{{ i + 1 }}">
                    {% set i = i + 1 %}
 
                {% endif %}
 
            </li>
 
        {% endfor %}
 
    </ul>
Lorsque je suis en mode édition (editMode == 1), les inputs de type file sont tout de même affichés malgré que, dans mes sources, ce soit ceci qui est généré :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<input type="file" id="photos_advert_photos_1_file" name="photos_advert[photos][1][file]" class="hidden-row custom-file-input" />
Quelqu'un aurait une idée sur la manière de procéder?

Merci d'avance pour votre aide.