Bonjour, à de nombreuses reprises je suis passé sur vos forums pour obtenir des informations, et comme elles se sont souvent avérées formatrice, j'ai donc décidé de venir ici posté un petit problème que je rencontre et qui me bloque depuis un petit moment.
Voilà il s'agit d'un forum dans celui ci l'utilisateur à la possibilité de créer un nouveau sujet et en même temps un nouveaux post donc. J'utilise donc l'appel du formulaire sujet que je fusionne avec le formulaire "forum" qui lui détient les information du sujet, mais aussi de l'utilisateur, etc etc...
Voici donc le code Yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
forum:
actAs:
Timestampable:
columns:
ID:
primary: true
type: integer
autoincrement: true
message:
type: string(5000)
notnull: true
sujet_ID:
type: integer
notnull: true
sous_cat_ID:
type: integer
notnull: true
categorie_ID:
type: integer
notnull: true
sfGuardUser_id:
type: integer
notnull: true
relations:
sujet:
local: sujet_ID
foreign: ID
sujet:
actAs:
Timestampable:
columns:
ID:
primary: true
type: integer
autoincrement: true
sujet_name:
type: string(255)
notnull: true
sous_cat_ID:
type: integer
notnull: true |
Et le code du formulaire en question:
1 2 3 4 5 6 7 8 9 10 11
|
class sujetForm extends BasesujetForm
{
public function configure()
{
unset($this['created_at'], $this['updated_at']);
$this->widgetSchema['sous_cat_ID'] = new sfWidgetFormInputHidden();
$this->mergeForm(new ForumForm());
}
} |
et mon action:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public function executeShowforum(sfWebRequest $request)
{
$this->categorie = $this->getRoute()->getObject();
$this->forward404Unless($this->categorie);
if ($this->getUser()->isAuthenticated()):
$this->form = new sujetForm();
$this->form->setDefault('sous_cat_ID', $this->categorie->getId() );
$this->form->setDefault('categorie_ID', $this->categorie->getCategorie_id() );
$this->form->setDefault('sfGuardUser_id', $this->getUser()->getGuardUser()->getId() );
endif;
} |
Seulement voilà, lorsque je valide l'envois du formulaire, celui me dit que "sujet: Required." dans la base de donnéee du Forum.
En bref il ne comprends pas qu'il doit récupérer la clef de l'entrée de la table sujet pour la transférer dans la table forum, comme s'il ne comprennait pas la relation entre les 2 tables.
J'ai donc chercher sur le net et j'ai trouvé des choses du genre:
$this->mergeForm(new ForumForm(forumPeer::retrieveByPK($this->getObject()->getId())));
Sa semble effectivement une bonne idée, mais ce code ne marche absolument pas, j'en ai déduis que c'était pour du Propel et non du Doctrine. Je me suis donc jeté dans ma doc Doctrine 1.2 mais je n'ai rien trouvé de concluant. D'ou ma question, comment définir la relation dans cette fusion?
Merci d'avance, cordialement
Partager