Merger Module dans l'admin generator
(sauve-moi)
Réponses apportées à cette discussion
Tu l'as dit de toi même, il faut faire des formulaires imbriqués dans ton formulaire de question :)
Ok ça marche à peu près...
Je retire ce que j'ai dit sur la staticité de SF ^^
Bien à toi !!
Seulement j'ai un problème ... (trop beau pour ne pas en avoir).
Ma question (= form main) va être créer et générer un nouvel id unique.
Ma réponse (= form embed) va être créer et prendre en FK l'id qui vient d'être créer.
J'ai fait comme ceci pour setter l'id de la réponse :
$this->reponse = new Reponse();
$nextId = Doctrine::getTable('Question')->getNextId();
$nextId = $nextId['MAX']+ 1;
$this->reponse->setQuestionId($nextId);
$this->embedForm('Reponse', new ReponseForm($this->reponse));
Mais bon au moment de valider ça me marque invalide ... :/ car l'idée ne doit pas encore être créer.
Je pense que je dois donc modifier la méthode processForm ??
Merci à toi !
Désolé de parceller le message
EN gros je ne sais pas à quel moment je dois setter la FK d'une form embed qui est la primary KEY du form MAIN !
Merci de ton aide !!
Le code que tu présentes est exactement tout ce qu'il ne faut pas faire... On ne calcule pas le next id de cette manière dans la mesure où il peut varier d'une page à une autre quand tu soumets ton formulaire. Tu te retrouverais donc avec des contraintes d'intégrité.
Le principe est en revanche très simple :
<?php class QuestionForm extends BaseQuestionForm{ public function configure() { $reponse = new Reponse(); $reponse->setQuestion($this->object); $this->embedForm('reponse', new ReponseForm($reponse)); }}
++
Désolé de reposter ... décidément je ne sais pas me débrouiller tout seul... :s
Bref c'est pour ce même sondage, comment préciser si le form embed reponse est vide, alors tu ne l'enregistres pas dans la table.
Je pense que je dois overridé la méthode save() ??
Merci
Re,
J'ai pensé à une ruse...
$question = $form->save(); // Enregistre la question et les 5 réponses même les réponses vides.
Mais je peux rajouter juste après ce code
Doctrine::getTable('Reponse')->clearReponse();
Cette méthode me supprimerai les réponses qui viennent d'être créer et qui sont vides...
Bon c'est très sale mais bon, qu'en penses - tu???
Merci