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 30/11/2010, 11h58   #1
Invité régulier
 
Inscription : novembre 2010
Messages : 36
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 36
Points : 8
Points : 8
Par défaut Impossible de charger le fichier fixtures.yml

Bonjour,

J'ai créé mes tables avec le shéma suivant :

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
# config/doctrine/schema.yml
 
Region:
  tableName:  region
  columns:
    id:       { type: integer(4), unsigned: true, primary: true, autoincrement: true }
    name:      { type: string(255), notnull: true }
 
Departement:
  tableName: departement
  columns:
    region_id: { type: integer(4), unsigned: true }
    name:       { type: string(255), notnull: true }
 
  relations:
    Region:
      local:        region_id
      foreign:      id
      foreignAlias: Departement
      onDelete:     CASCADE
Annonce:
  actAs: { Timestampable: ~ }
  columns:
    Utilisateur_id: { type: integer, notnull: true }
    Categorie_id:   { type: integer, notnull: true }
    Departement_id: { type: integer, notnull: true }
    CodePostal:     { type: integer }
    Ville:          { type: string(255) }
    TexteAnnonce:   { type: string(4000) }
    TitreAnnonce:   { type: string(255) }
    Prix:           { type: integer}
    TypeAnnonce:    { type: string(255)}
    isAccomplished: { type: boolean, notnull: true, default: 0  }
    is_activated:   { type: boolean, notnull: true, default: 0 }
    expires_at:     { type: timestamp, notnull: true }
  relations:
    Utilisateur:    { onDelete: CASCADE, local: Utilisateur_id, foreign: id, foreignAlias: Utilisateur }
    Departement:    { onDelete: CASCADE, local: Departement_id, foreign: id}
    Categorie:      { onDelete: CASCADE, local: Categorie_id, foreign: id }
Categorie:
  actAs: { Timestampable: ~ }
  columns:
    name:    { type: string(255), notnull: true, unique: true }
    famille: { type: string(255), notnull: true, unique: true }
.
.
.
Mon fichier Annonce.yml :

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
26
27
28
29
30
 
Annonce:
   mustangGT:
    Departement:    alsace
    Categorie:      voitures
    Utilisateur:    onepiece
    codepostal:     90000
    ville:          belfort
    texteannonce:   |
     Je vends une tres belle mustang dernier cris en tres bon etat
    titreannonce:   mustangGT a vendre
    prix: 90000
    typeannonce:    particulier
    isaccomplished: false
    is_activated:   true
    expires_at:     '2010-10-10'
   belappartement:
    Departement:    aquitaine
    Categorie:      appartement
    Utilisateur:    fastone
    codepostal:     75000
    ville:          Paris
    texteannonce:   |
     Je vends un tres bel appartement meuble en tres bon etat
    titreannonce:   appart a vendre
    prix: 90000
    typeannonce:    particulier
    isaccomplished: false
    is_activated:   true
    expires_at:     '2010-10-10'



après que je lance: php symfony doctrine:data-load

Il me sors l'erreur suivante :
Code :
1
2
 
  Invalid row key specified: (departement) alsace, referred to in (annonce) mustangGT
Que dois-je faire ?

Merci d'avance.
fastone650 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 12h12   #2
Membre habitué
 
Avatar de Vicrabb
 
Femme Vinciane
Développeur Web
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Femme Vinciane
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 100
Points : 100
Première solution: Tu mets Departement à la place de Departement_id. Idem pour catégorie et utilisateur. Mets le même nom que la colonne, peut-être cela résoudra ton problème.

Deuxième solution: Catégorie et Département sont inversés: tu mets département d'abord et puis catégorie alors que dans le schéma, c'est l'inverse.

Troisième solution: Attendre que quelqu'un plus habitué à Doctrine passe.

Tu choisis ce que tu veux ^^.
Vicrabb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 21h26   #3
Invité régulier
 
Inscription : novembre 2010
Messages : 36
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 36
Points : 8
Points : 8
J'ai du changer les attributs en departement_id et region_id pour que ca marche.Mais c'est bisar car pour les autres tables utilisateurs et categorie ca marche nikel sans le _id.


Merci.
fastone650 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 12h19   #4
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
Explication. Le fixature tiens compte du nom du lien créé dans relation pour créer la liaison. Donc, en fait, le nom du champ n'a aucune importance.

Par contre, dans ta table il est important de donner un nom aux deux cotés d'un lien, avec, notament, le foreignAlias, ce qui n'est pas le cas partout. Il est recommandé de mettre un "s" aux liens qui retournes plusieurs enregistrements. Accessoirement, il n'y a pas de

Pour le fixature, il faut donner, dans la liaison, le nom du code de l'enregistrement correspondant.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Departement:
  dep68:
    name: Haut-Rhin
  deb88:
    Name; Voges
 
Categorie
  cat01:
    name: voiture
  cat02:
    name appartement
Annonce:
   mustangGT:
    Departement:    dep68
    Categorie:         cat01
   belappartement:
    Departement:    dep88
    Categorie:         cat02
A noter que ton modèle n'est pas conforme aux formes normale, entre autre, la région devrait être liée au département, si non, tu as une redondance dans la table annonce.
__________________
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 02h37.


 
 
 
 
Partenaires

Hébergement Web