Bonjour,

Alors je vous explique, j'ai generé une application admin pour gere un module 'plainte'. Dans le formulaire généré, a la place d'un champ texte de base généré j'ai mis un select avec une liste de communes (cette liste est stockée dans une base de donnée et j'ai également généré un modèle).

Le problème c'est que lorsque que je sauvegarde une nouvelle plainte dans la base de donnée, dans le champ ou il sauvegarde la commune (plainte_pos ci dessous) il me sauvegarde l'id qu'elle a dans le tableau (a cause du array, voir ci dessous) de la commune et non son nom (se dont je souhaite sauvegarder).

lib/modele/doctrinePlainteForm.class.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
  public function configure()
  {
	$this->widgetSchema['plainte_pos'] = new sfWidgetFormChoice(array('choices' => Doctrine::getTable('Plainte')->getFormChoiceCommune(), 'expanded' => false,));
  }

lib/modele/doctrine/base/BasePlainteForm.class.php

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
 
 
abstract class BasePlainteForm extends BaseFormDoctrine
{
  public function setup()
  {
    $this->setWidgets(array(
   // ....
      'plainte_pos'                 => new sfWidgetFormInputText(),
    //...
    ));
 
    $this->setValidators(array(
  //...
      'plainte_pos'                 => new sfValidatorString(array('max_length' => 128)),
   //...
    ));
Si quelqu'un a une solution, j'ai essayé quelques trucs (essayer de passer par les set/get du modele ou encore utiliser la fonction php array_values() ) sans succes.

Merci d'avance!