Bonjour,

J'ai un problème auquel je n'arrive pas à apporter une solution, j'espère que vous pourrez m'aider.

Contexte:
Une table Resources avec (notamment) un champ submit_user.

Une table Users avec (notamment) un champ id et un champ username.
Le champ id est clé primaire de la table.

Une clé étrangère de Resources(submit_user) vers Users(username).

Un formulaire pour Resources dont le widget et le validateur pour le champ submit_user sont les suivants:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
'submit_user' => new sfWidgetFormDoctrineChoice(array('model' => 'Users', 'add_empty' => false)) //On aurait tout aussi bien pu avoir 'model' =>getRelatedModelName('Users')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
'submit_user' => new sfValidatorDoctrineChoice(array('model' => 'Users', 'required' => false, 'column' => 'username')) //Même remarque que ci-dessus
Les plus attentifs d'entre vous remarqueront que si l'ont tente d'insérer une valeur de submit_user telle que donnée par cela, on va violer la contrainte de clé étrangère définie plus haut. En effet, c'est le champ id qui sera pris pour valeur de submit_user alors qu'on s'attendrait à avoir le champ username pour respecter la contrainte.

Après quelques tentatives ratées, je me tourne vers vous et votre maîtrise du framework de formulaire pour m'aiguiller vers une solution, c'est-à-dire un moyen de transmettre le champ username et non le champ id du Users pour les choix du Widget correspondant à submit_user de Resources. (J'insiste sur le fait qu'il ne s'agit pas ici d'un problème d'affichage dans le formulaire donc, pas d'option method, column ou encore un __toString() dans Users, c'est déjà fait )

Merci d'avance et n'hésitez pas à me questionner si je ne suis pas assez clair ou trop ambigu.

Kantho