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 27/04/2011, 17h19   #1
Membre habitué
 
Homme Ludovic
Étudiant
Inscription : janvier 2011
Messages : 124
Détails du profil
Informations personnelles :
Nom : Homme Ludovic
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 124
Points : 140
Points : 140
Par défaut Doctrine : construction du schéma à partir de la BDD

Bonjour à tous,

Je suis en stage dans un labo et je dois migrer un site web pour le recréer à partir du framework symfony. Je part d'un BDD assez grosse (45 tables) et j'aimerai savoir ce que je dois corriger quand je génère le schéma à partir de celle-ci.

De ce que j'ai trouvé sur le web, je dois refaire les relations N:N qui ne sont pas détectées mais quand je le fait et que je génère un backend, les listes créées par les relations N:N ne fonctionnent pas en édition et création.

Par exemple :
Schéma :
Person -> PersonAcitivity <- Activity

Table Person :
Code :
1
2
3
4
5
    PersonActivity:
      local: activity_id
      foreign: person_id
      class: Activity
      refClass: PersonActivity
Table Activity :
Code :
1
2
3
4
5
    PersonActivity:
      local: person_id
      foreign: activity_id
      class: Person
      refClass: PersonActivity
Table PersonActivity :
Code :
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
PersonActivity:
  connection: doctrine
  tableName: person_activity
  columns:
    person_id:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: true
      autoincrement: false
    activity_id:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: true
      autoincrement: false
  relations:
    Person:
      local: person_id
      foreign: id
      type: one
    Activity:
      local: activity_id
      foreign: id
      type: one
et si je veut filtrer ou éditer une personne, je me retrouve avec l'erreur :

Code :
1
2
500 | Internal Server Error | Doctrine_Connection_Mysql_Exception
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'p2.id' in 'on clause'
Deuxième question, que dois-je faire des relations many to one comme par exemple dans Person :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    Resource:
      local: id
      foreign: person_id
      type: many
    Resource_4:
      class: Resource
      local: id
      foreign: person_contact_id
      type: many
    Resource_5:
      class: Resource
      local: id
      foreign: person_responsible_id
      type: many
    Resource_6:
      class: Resource
      local: id
      foreign: person_updater_id
      type: many
    Task:
      local: id
      foreign: person_id
      type: many
alors que les clés sont dans l'autre table (task, resource,...).
PeytaWodka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 10h39   #2
Membre habitué
 
Homme Ludovic
Étudiant
Inscription : janvier 2011
Messages : 124
Détails du profil
Informations personnelles :
Nom : Homme Ludovic
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 124
Points : 140
Points : 140
Problème résolu je pense.
En fait, il faut changer le nom de la relation pour pas que celle-ci est le même de la table association.
PeytaWodka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 11h54   #3
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Si tu parts sur une vraie évolution de l'application (pas de travail en simultané sur la même base) tu as intérêt à adapter le shema.yml à doctrine.

C'est une relecture complète qu'il te faudrait faire.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web