IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Doctrine] fixture et table liée


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Par défaut [Doctrine] fixture et table liée
    Bonjour,

    J'ai le schéma suivant décrivant une table PAYS et une table REGION :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    49
    50
    51
    52
    53
    54
    55
    Country:
      tableName:         country
      actAs:             [Timestampable]  
      columns:
        id:
          type:          integer(11)
          primary:       true
          autoincrement: true
          notnull:       true
        name:
          type:          string(150)
          notnull:       true
        locale:
          type:          string(10)
          notnull:       false
      indexes:
        country:
          fields:
            name:
              sorting:   ASC
          type: unique
     
    Region:
      tableName:         region
      actAs:             [Timestampable]  
      columns:
        id:
          type:          integer(11)
          primary:       true
          autoincrement: true
          notnull:       true
        name:
          type:          string(150)
          notnull:       true
        country_id:
          type:          integer(11)
          notnull:       true
      relations:
        Country:
          class:         Country
          local:         country_id
          foreign:       id
          foreignAlias:  Regions
          type:          one
          foreignType:   many
          onUpdate:      NO ACTION
          onDelete:      NO ACTION
      indexes:
        region:
          fields:
            name:
              sorting:   ASC
            country_id:
              sorting:   ASC
          type: unique
    Mon fixture pour les pays et les régions est le suivant (ce n'est qu'un extrait) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Country:
      France:
        name:   France
        locale:
     
    Region:
      Alsace:
        name:       Alsace
        country_id: France
    Lorsque j'exécute la commande "symfony doctrine-build-all-reload", j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    >> doctrine  loading data fixtures from "E:/dev/[...]/data/fixtures"
     
      Validation failed in class Region
     
        1 field had validation error:
     
          * 1 validator failed on country_id (type)
    Apparemment, symfony n'arrive pas à relier mon enregistrement Alsace au pays France. Quelqu'un a t-il une explication à cette erreur ?

    Merci d'avance !
    Un peu d'humour : jokes.guppix.fr
    Articles et actualités informatiques : Kbups.org
    Articles sur le développement informatique : nicolaspied.developpez.com

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    Même problème que toi.
    Pour aller un peu plus loin, Doctrine n'arrive pas à résoudre les labels utilisé et faire la correspondance avec les id dans la base.

    De ce fait (puisqu'ils sont vides) la validation génère une erreur de type.

    Un article traite d'un problème similaire dans le bug tracker du projet Symfony mais l'appliquer ne résout que partiellement le problème:

    Les données sont insérées dans la base mais les valeurs de clés étrangères ne sont pas attribuées.

    Si tu as trouvé une solution à ton problème, je suis preneur!

  3. #3
    Membre éclairé
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Par défaut
    En fait, la solution est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Country:
      France:
        name:   France
        locale:
     
    Region:
      Alsace:
        name:       Alsace
        Country:    France
    Il faut donc remplacer country_id (dans mon cas) avec le Country (le nom de ma classe présent 8 lignes au dessus)

    Je pense que cela devrait résoudre également ton problème.
    Un peu d'humour : jokes.guppix.fr
    Articles et actualités informatiques : Kbups.org
    Articles sur le développement informatique : nicolaspied.developpez.com

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    Merci de l'info...

    J'étais en train de retourner mon schéma dans tous les sens en croyant que ça venait de là!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Doctrine fixtures truncate table
    Par symfo33 dans le forum Doctrine2
    Réponses: 0
    Dernier message: 20/04/2017, 18h05
  2. Mise à jour des tables liées + TIMESTAMP
    Par Homegrown dans le forum Access
    Réponses: 11
    Dernier message: 25/04/2005, 21h52
  3. Connaitre si table liée
    Par Njara dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2004, 16h35
  4. [select dans case] reconnaitre un champ d une table liée
    Par the_edge dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 22/10/2004, 16h47
  5. Count et tables liées ?
    Par seb_perl dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/02/2004, 12h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo