Bonjour,
J'ai un formulaire de modification qui fonctionnait sous Sf2.0 mais plus sous Sf2.1 malgré les changements opérés selon le CHANGELOG (https://github.com/symfony/symfony/b...hemes-and-html).
Voici la version pour Sf2.0
Et voici la version Sf2.1 (juste la macro, le reste ne change pas)
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 {% block epn_resource_choice_widget %} {% set options = choices %} <select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}> {# FIXME BUG le choix de la valeur null provoque une erreur pour les lieux qui avait un parent avant #} {% if empty_value is not none %} <option value="">{{ empty_value|trans({}, translation_domain) }}</option> {% endif %} {{ _self.epn_resource_choice_options(roots, 0, form, choices) }} </select> {% endblock %} {% macro epn_resource_choice_options(resources, level, form, choices) %} {% for resource in resources %} {# Déterminer s'il est sélectionné #} {% set disabled = true %} {% set selected = null %} {% if choices[resource.id] is defined %} {% set disabled = false %} {% set selected = _form_is_choice_selected(form, choices[resource.id]) %} {% endif %} <option value="{{ resource.id }}" {% if selected %}selected="selected"{% endif %} {% if disabled %}disabled="disabled"{% endif %} > {% for i in 0..level if i != 0 %}_{% endfor %} {{ resource.name }} </option> {{ _self.epn_resource_choice_options(resource.children, level + 1, form, choices) }} {% endfor %} {% endmacro %}
La ligne problématique est la 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 {% macro epn_resource_choice_options(resources, level, form, choices) %} {% for resource in resources %} {# Déterminer s'il est sélectionné #} {% set disabled = true %} {% set selected = null %} {% if choices[resource.id] is defined %} {% set disabled = false %} {% set selected = choices[resource.id] is selectedchoice(resource.id) %} {% endif %} <option value="{{ resource.id }}" {% if selected %}selected="selected"{% endif %} {% if disabled %}disabled="disabled"{% endif %} > {% for i in 0..level if i != 0 %}_{% endfor %} {{ resource.name }} </option> {{ _self.epn_resource_choice_options(resource.children, level + 1, form, choices) }} {% endfor %} {% endmacro %}
Mais cette dernière ne sélectionne aucun choix.
Code : Sélectionner tout - Visualiser dans une fenêtre à part {% set selected = choices[resource.id] is selectedchoice(resource.id) %}
Quand je mets selectedchoice('3') par exemple, à la place de selectedchoice(resource.id), j'ai bien la valeur sélectionnée.
Quel est la bonne syntaxe pour retrouver la valeur par défaut (celle qui est déjà renseignée dans l'objet que je veux modifier) à l'entrée du formulaire ?
Cordialement.
Partager