Alors décrit tes relations de manière plus complète. Et attention, le nom de
la relation sera repris par les getter et setter et si elle n'est pas
préciser la classe à laquelle se rapporte la relation. Il te manque
peut-être des majuscules aux bons endroits pour que ça marche nickel.

Par exemple :
Customer:
...

Phase:
...

Business:
  relations:
    Customer:
      class:                  Customer
      local:                  customer_id
      foreign:                id
      type:                   one
    Phases:
      class:                  Phase
      local:                  id
      foreign:                business_id
      type:                   many

        
-----Message d'origine-----
De : [email protected] [mailto:[email protected]] De la
part de Cyril FLIELLER
Envoyé : mercredi 16 mars 2011 17:43
À : [email protected]
Objet : RE: [symfony-fr] [Doctrine] Clé primaire étrangère

Mais mon 1er exemple marche ! C'est le deuxième qui ne marche pas. Ce qui
est plutôt bizarre car si doctrine sait gérer une double clé primaire
étrangère pourquoi pas une seule.

Le 16 mars 2011 17:37, "Lélio ML" <[email protected]> a écrit :
> Il me semble que tu veux gérer des utilisateurs. A moins que ce ne 
> soit pas les utilisateurs de l'application (et je te prie de m'excuser 
> alors de ma méprise), le plugin sfGuard gère les utilisateurs, les 
> groupes et les permissions de l'application.
> 
> Sinon, il faut savoir que Symfony/Doctrine n'apprécient pas du tout 
> les clés multiples.
> Pour contourner ce soucis, je laisse un id comme clé primaire et je 
> mets un index unique sur les champs qui auraient du être dans la clé
multiple.
> 
> 
> 
> -----Message d'origine-----
> De : [email protected] [mailto:[email protected]] 
> De la part de Cyril FLIELLER Envoyé : mercredi 16 mars 2011 17:30 À : 
> [email protected] Objet : Re: [symfony-fr] [Doctrine] Clé 
> primaire étrangère
> 
> J'avoue ne pas bien comprend à quoi va me servir sfDoctrineGuard ici ?
> 
> Cyril FLIELLER
> 
> 
> 
> Le 16 mars 2011 17:26, Lélio ML <[email protected]> a écrit :
> 
> 
> Pourquoi ne pas utiliser le plugin sfDoctrineGuard ?
> 
> -----Message d'origine-----
> De : [email protected]
> [mailto:[email protected]] De la part de Cyril FLIELLER 
> Envoyé : mercredi 16 mars 2011 17:23 À : [email protected] 
> Objet : [symfony-fr] [Doctrine] Clé primaire étrangère
> 
> 
> J'ai un souci en définissant mon fichier yml, je n'obtiens pas le SQL 
> voulu.
> 
> J'arrive à créer une table avec pour deux clés primaires étrangères 
> sans souci pour stocker des groupes d'utilisateurs. J'ai en gros :
> 
> groups:
> columns:
> label: { type: string(255), notnull: true }
> persons:
> columns:
> email: { type: string(255), notnull: true }
> lastname: { type: string(255), notnull: true }
> firstname: { type: string(255), notnull: true }
> 
> membersgroups:
> columns:
> person_id: { type: integer, primary: true }
> group_id: { type: integer, primary: true }
> relations:
> persons: { onDelete: CASCADE, local: person_id, foreign:
> id }
> groups: { onDelete: CASCADE, local: group_id, foreign: id }
> 
> Ça nickel, ça marche.
> 
> Mais par contre, je veux créer une autre table avec une clé primaire 
> étrangère et deux autres clés étrangères et là c'est le drame !
> 
> absences:
> columns:
> .........
> 
> missions:
> columns:
> absence_id: { type: integer, primary: true }
> transport_id: { type: integer, notnull: true }
> entite_id: { type: integer }
> relations:
> absences: { local: absence_id, foreign: id }
> transport: { onDelete: CASCADE, local: transport_id, foreign: id }
> entite: { onDelete: CASCADE, local: entite_id, foreign: id }
> 
> Et là, donc, c'est le drame, niveau SQL ça ne me génère pas la 
> contrainte de clé étrangère sur ma table absence.
> 
> 
> 
> 
> 
> 
> Cyril FLIELLER
> 
> 
> 
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
> Symfony-fr.
> Pour envoyer un message à ce groupe, adressez un e-mail à 
> [email protected].
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
> [email protected] 
> symfony-fr+<mailto:symfony-fr%[email protected]>
> <mailto:symfony-fr%[email protected]
<mailto:symfony-fr%[email protected]> > .
> Pour plus d'options, consultez la page de ce groupe :
> http://groups.google.com/group/symfony-fr?hl=fr
> 
> 
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
> Symfony-fr.
> Pour envoyer un message à ce groupe, adressez un e-mail à 
> [email protected].
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
> [email protected] 
> symfony-fr+<mailto:symfony-fr%[email protected]>
> <mailto:symfony-fr%[email protected]
<mailto:symfony-fr%[email protected]> > .
> Pour plus d'options, consultez la page de ce groupe :
> http://groups.google.com/group/symfony-fr?hl=fr
> 
> 
> 
> 
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
> Symfony-fr.
> Pour envoyer un message à ce groupe, adressez un e-mail à 
> [email protected].
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
> [email protected]
<mailto:symfony-fr%[email protected]> .
> Pour plus d'options, consultez la page de ce groupe :
> http://groups.google.com/group/symfony-fr?hl=fr
> 
> 
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
Symfony-fr.
> Pour envoyer un message à ce groupe, adressez un e-mail à
[email protected].
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected]
<mailto:symfony-fr%[email protected]> .
> Pour plus d'options, consultez la page de ce groupe : 
> http://groups.google.com/group/symfony-fr?hl=fr
> 


--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail à
[email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected].
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr


-- 
Vous recevez ce message, car vous êtes abonné au groupe Google 
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail 
à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
[email protected].
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à