Bonjour !

Un petit casse tête pour commencer la journée !

Je pensais avoir fait le tour des surprises sur symfony mais voici quelque chose qui me laisse vraiment perplexe !

Mon cas: dans le backend d'un objet simple qui possède un champ de type text 'country'.

Je le déclare ainsi dans mon BackendDoctorForm:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$this->widgetSchema['country'] = new sfWidgetFormI18nChoiceCountry(array(
	'culture' => 'en',
	'add_empty' => true
));
Forcément et heureusement, dans le module filter, j'ai une jolie boite déroulante avec tous les pays.

Cependant, cela ne prends pas bien le filtre en compte.

Le code généré est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<select name="doctor_filters[country]" id="doctor_filters_country">
<option value=""></option>
<option value="AF">Afghanistan</option>
<option value="AL">Albania</option>
[...]
</select>
Après moultes recherches, pour que cela fonctione, il faut que name soit déclaré ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<select name="doctor_filters[country][text]" id="doctor_filters_country">
<option value=""></option>
<option value="AF">Afghanistan</option>
<option value="AL">Albania</option>
[...]
</select>


A part corriger ça à la volée en javascript ou réécrire le partial à la main, je ne vois pas de bonne façon de corriger ceci.

Et vous ?

Merci