Bonjour,
Je suis en train de créer un behavior Doctrine : Calendar. Il ajoute à un modèle des fonctions de calendrier qui permette de le situer dans le temps: jours, heures, recurrences... chaque enregistrement pouvant avoir plusieurs jours, heures et recurrences...

Comme chaque enregistrement peut avoir plusieurs entrées dans la calendrier, je dois générer une table supplémentaire, Calendar, avec une relation one-to-many.

J'ai réussi sur le modèle du behavior Versionable à générer automatiquement la table ainsi que les relations qui vont bien en utilisant Doctrine_Template et Doctrine_Record_Generator.

Mais tout se complique lorsque au moins 2 modèles font appel au behavior. Pour garder les relations je veux ajouter dynamiquement une colonne à la table Calendar à chaque fois qu'un modèle applique le behavior pour y stocker la clé distante.

Exemple de schéma :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Spectacle:
  actAs: [CalendarBehavior]
  columns:
    titre: string
    ...
 
Solde:
  actAs: [CalendarBehavior]
  columns:
    boutique: string
    ...
Je voudrais générer une table de la forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Calendar:
  columns:
    spectacle_id: integer
    solde_id: integer
    date: date
    heure: time
    ....
Et là je n'y arrive pas. Chaque appelle au Doctrine_Template créé un champ 'xxxx_id', mais écrase par la même occasion la champ ajouté par le modèle précédent.

Est ce que quelqu'un à une idée ? Un petit coup de main ne serait pas de refus...