Doctrine_Template : ajouter dynamiquement des colonnes
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:
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:
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...