Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2011, 15h24   #1
Invité régulier
 
Sébastien
Inscription : mai 2008
Messages : 20
Détails du profil
Informations personnelles :
Nom : Sébastien
Âge : 34

Informations forums :
Inscription : mai 2008
Messages : 20
Points : 8
Points : 8
Par défaut 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...
sebastien.bd est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h22.


 
 
 
 
Partenaires

Hébergement Web