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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$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