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 Discussion :

Probleme relation schema.yml


Sujet :

PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2006
    Messages : 28
    Par défaut Probleme relation schema.yml
    Bonjour,

    J'ai un petit soucis avec ma table sfGuardUserProfile je souhaite liier 2 tables à celle ci les tables country et gender.

    Saut qu'une fois que je génère avec le doctrine:build mes champs gender_id et country_id ne sont pas liés aux tables country et gender.

    C'est la première fois que j'utilise la notion d'héritage.


    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
     
    MyProfile:
      inheritance:
        type: column_aggregation
        extends: sfGuardUserProfile
      columns:
        birthday:
          type: date
          notnull: true
        address:
          type: varchar(150)
          notnull: true
        zipcode:
          type: varchar(150)
          notnull: true	  
        city:
          type: string(150)
          notnull: true
        address:
          type: varchar(150)
          notnull: true
        phone:
          type: integer(10)
          notnull: true
        country_id:
          type: integer	 
          notnull: true	  
        gender_id:
          type: integer
          notnull: true	  
      relations:
        country:
          foreignAlias: sfGuardUserProfile	
        gender:
          foreignAlias: sfGuardUserProfile	
     
    country:
      columns:
        name:
          type: string(50)
          notnull: true
     
    gender:
      columns:
        name:
          type: string(50)
          notnull: true
    Quelqu'un pourrait me dire ou se trouve mon erreur ou m'aiguiller sur comment corriger.

    Merci

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Tu as deux erreurs.

    Une dans le nom du foreignAlias. C'est une erreur sémantique et non syntaxique. Le nom doit être le nom de la relation vue par l'autre côté. Il serait ici "MyUsers" ou un truc dans le genre. Ceci ne change pas la validité de la configuration mais rend le modèle généré plus compréhensible.

    L'autre est sur les type de champs pour les clefs.

    Depuis la 1.4.9 de symfony, les champs clef sont passés en big int. En principe integer seul génère du big int. Il faut vérifier que tu aies bien, dans ta base, du big int partout.

    Vérifie aussi que les clefs externes aient bien été définies.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2006
    Messages : 28
    Par défaut
    Pour te donner un peu plus de précision j'utilise le plugins sfForkedDoctrineApplyPlugin qui fonctionne pas de soucis j'ai vérifier que tout est bien en bigint c'est bien le cas sur mes différentes tables.

    Lorsque je crée un utilisateur le lien avec les clefs étrangères est bien réalisé par contre il ne m'a pas créer automatiquement la liste déroulante pour gender_id et country_id dans le formulaire de la table sfguarduserprofile ce qui me laisse supposer qu'il y a toujours une erreurs.

    Dans le foreignalias j'ai mis sf_guard_user_profile.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    C'est pour le moins bizarre.

    Ton schéma est correcte pour ce que tu souhaites.

    Essaie de supprimer les objets dans lib/model/doctrine/base et lib/form/doctrine/base et de re-générer le tout.

    En général ce type de problème provient d'un shema.yml foireux. Et symfony n'arrive pas à identifier le type de lien. Sur ce que tu m'as donnés comme partie du schéma, il n'y a pas de raisons qu'il ne se trompe.

    Reste, à priori, deux pistes : une autre partie du schéma inter-réagit avec ces trois tables, la notion d'héritage gène la génération correcte des form.

    A défaut d'une connaissance global de ton schéma, je partirais sur les pistes possibles pour la deuxième idée.

    Essaye de compléter les informations sur ton héritage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    MyProfile:
      inheritance:
        type: column_aggregation
        extends: sfGuardUserProfile
        keyField: type
        keyValue: 1
    Qu'est-ce qu'il génère dans le formBase pources deux champs ? Quel widget et quel validateur ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2006
    Messages : 28
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    C'est pour le moins bizarre.

    Ton schéma est correcte pour ce que tu souhaites.

    Essaie de supprimer les objets dans lib/model/doctrine/base et lib/form/doctrine/base et de re-générer le tout.

    En général ce type de problème provient d'un shema.yml foireux. Et symfony n'arrive pas à identifier le type de lien. Sur ce que tu m'as donnés comme partie du schéma, il n'y a pas de raisons qu'il ne se trompe.

    Reste, à priori, deux pistes : une autre partie du schéma inter-réagit avec ces trois tables, la notion d'héritage gène la génération correcte des form.

    A défaut d'une connaissance global de ton schéma, je partirais sur les pistes possibles pour la deuxième idée.

    Essaye de compléter les informations sur ton héritage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    MyProfile:
      inheritance:
        type: column_aggregation
        extends: sfGuardUserProfile
        keyField: type
        keyValue: 1
    Qu'est-ce qu'il génère dans le formBase pources deux champs ? Quel widget et quel validateur ?
    Dans le formBase il genere des champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type="text" name="sfApplyApply[country_id]" id="sfApplyApply_country_id" />
     
    <input type="text" name="sfApplyApply[gender_id]" id="sfApplyApply_gender_id" />
    Je te remet également les modifs que j'ai effectué dans mon schema

    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
     
    MyProfile:
      inheritance:
        type: column_aggregation
        extends: sfGuardUserProfile
        keyField: type
        keyValue: 1	
      columns:
        birthday:
          type: date
          notnull: true
        address:
          type: varchar(150)
          notnull: true
        zipcode:
          type: varchar(150)
          notnull: true	  
        city:
          type: string(150)
          notnull: true
        address:
          type: varchar(150)
          notnull: true
        phone:
          type: integer(10)
          notnull: true
        country_id:
          type: integer	 
          notnull: true	  
        gender_id:
          type: integer
          notnull: true	  
      relations:
        country:
          foreignAlias: sf_guard_user_profile	
        gender:
          foreignAlias: sf_guard_user_profile
    J'ai mis également les modifications que tu m'as proposé mais ça ne change rien, j'ai supprimé les répertoires dans form et model mais le problème est toujours le même.

    Je rajoute aussi le schema.yml du plugins pour que tu puisse avoir une vue complete de mon model

    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
     
    sfGuardUserProfile:
      actAs:
        Timestampable: ~
      columns:
        user_id:
          type: integer
          notnull: true
          unique: true
        email_new:
          type: string(255)
          unique: true
        firstname:
          type: string(255)
        lastname:
          type: string(255)
        validate_at:
          type: timestamp
        validate:
          type: string(33)
      relations:
        User:
          class: sfGuardUser
          foreign: id
          local: user_id
          type: one
          onDelete: cascade
          foreignType: one
          foreignAlias: Profile
      indexes:
        validate:
          fields: [validate]

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    C'est gentil, mais quel est le résultat de la modification ?

    Quel est la réponse à la deuxième question ?

Discussions similaires

  1. [1.x] Relations many to many dans schema.yml
    Par titiyoyo dans le forum Symfony
    Réponses: 21
    Dernier message: 10/09/2010, 13h24
  2. [1.x] Probleme schema.yml et fixture.yml
    Par butters dans le forum Symfony
    Réponses: 33
    Dernier message: 08/07/2010, 16h08
  3. [1.x] Schema.yml relation récursive
    Par damiensan dans le forum Symfony
    Réponses: 4
    Dernier message: 08/05/2010, 13h52
  4. schema.yml pour relation n-n Doctrine
    Par psgman113 dans le forum ORM
    Réponses: 3
    Dernier message: 22/03/2010, 19h59
  5. [1.x] probleme fichier schema.yml
    Par mibout5629 dans le forum Symfony
    Réponses: 2
    Dernier message: 30/11/2008, 18h13

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