Excusez moi si je pose encore une fois un problème bizarre, mais je suis bien obligé de demander de l'aide pour comprendre.
Ma table membre héritait de sfGuardUser avant que j'ai installé sfForkedDoctrineApply. Et depuis elle hérite de sfGuardUserProfile. Mais j'ai constaté que mon formulaire emissionForm qui a un champ dans ce genre
'membre_id' => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('membre'), 'add_empty' => false)),
n'affiche plus la liste déroulante des membres comme auparavant, mais plutôt une liste vide, alors que sur le modèle, la fonction __toString est bel et bien présente
1 2 3 4
| public function __toString()
{
return $this->getLastName().' '.$this->getFirstName();
} |
Pour savoir d'où vient ce problème, j'ai fait un symfony doctrine:build --all et là je tombe dans un autre problème. Quand je reviens à l'ancien héritage de membre (sfGuardUser), ou quand je supprime tout héritage, le formulaire membreForm renvoie cette erreur:
Widget schema does not include the following field(s): username, password, last_name, first_name, pays, email_address, photo, signature
Tous les champs cités sont bien définis tels quels dans le schema et dans le configure, je les appelle comme ca:
1 2 3 4 5 6 7 8 9 10
| $this->useFields(array(
'username',
'password',
'last_name',
'first_name',
'pays',
'email_address',
'photo',
'signature'
)); |
. L'erreur persiste même que le formulaire étende sfApplyApplyForm ou BasemembreForm. J'y comprends rien. Mais quand je reviens à l'héritage avec sfGuardUserProfile, il s'affiche, et quand j'enregistre un membre, le formulaire emissionForm continue d'afficher une liste déroulante vide des membres. Alors j'ai deux questions:
1) D'où vient-t-il que emissionForm dont le modèle est en relation avec membre n'affiche pas les noms des membres ?
2) Pourquoi membreForm renvoie Widget schema does not include field(s) quand on déshérite le modèle membre ou lui fait changer d'héritage ?
Merci de votre patience.
Partager