Merger Module dans l'admin generator

Rechercher

Merger Module dans l'admin generator

Par saturn1  -  8 reponses  -  Le 23/06/2009 00:19  -  Editer  - 

(sauve-moi)

 

Réponses apportées à cette discussion

Par Emacs  -  Le 23/06/2009 09:13  -  Haut de page  - 

Tu l'as dit de toi même, il faut faire des formulaires imbriqués dans ton formulaire de question :)

 
Par saturn1  -  Le 23/06/2009 12:36  -  Haut de page  - 

Ok ça marche à peu près...

 

Je retire ce que j'ai dit sur la staticité de SF ^^

 

Bien à toi !!

 
Par saturn1  -  Le 24/06/2009 20:04  -  Haut de page  - 

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 !

 

 
Par saturn1  -  Le 24/06/2009 20:08  -  Haut de page  - 

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 !!

 

 
Par Emacs  -  Le 24/06/2009 20:24  -  Haut de page  - 

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));  }}

 

++

 
Par saturn1  -  Le 24/06/2009 21:35  -  Haut de page  - 

Merci !!!

Bien à toi !! =)

 
Par saturn1  -  Le 25/06/2009 14:08  -  Haut de page  - 

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

 
Par saturn1  -  Le 26/06/2009 18:25  -  Haut de page  - 

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

 

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |