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
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 %}
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
{% 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 %}
La ligne problématique est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
            {% set selected = choices[resource.id] is selectedchoice(resource.id) %}
Mais cette dernière ne sélectionne aucun choix.

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.