Hé bien ça permet de connaitre explicitement et de contrôler les getter et
setter vers les objets liés. Si la relation n'est pas explicite, les getter
et setter ne seront pas (a priori) créés dans les classes Base...
From: Cyril FLIELLER
Sent: Wednesday, March 16, 2011 8:47 PM
To: [email protected]
Subject: Re: [symfony-fr] [Doctrine] Clé primaire étrangère
À quoi cela sert-il de définir les relations de type many ? Dans un sens
c'est de la redondance non ?
Cyril FLIELLER
Le 16 mars 2011 18:00, Lélio ML <[email protected]> a écrit :
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
--
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