2010-06-01 7 views
0

J'ai donc 2 modèles. Utilisateurs et groupes Chaque groupe a un utilisateur en tant que créateur et un groupe a beaucoup d'utilisateurs. Le FK de ces tables est configuré correctement, mais je me demandais s'il y avait un moyen plus facile d'obtenir tous les objets FK liés à partir d'autres objets. Par exemple, avec un objet groupe, existe-t-il une méthode intégrée pour obtenir l'objet utilisateur du créateur? Ou pour un utilisateur, existe-t-il une méthode intégrée pour obtenir tous les objets de groupe auxquels il appartient? Je ne pouvais pas trouver comment faire cela avec la documentation sur la page symfony. D'après ce que je vois, j'ai besoin de créer des méthodes et d'utiliser la doctrine pour accéder aux tables appropriées en utilisant l'identifiant des objets actuels et ainsi de suite.Modèles Symfony avec clés étrangères

Merci!

Certains exemple de schéma:

Group: 
    actAs: { Timestampable: ~ } 
    columns: 
    name: { type: string(500), notnull: true } 
    image: { type: string(255) } 
    type: { type: string(255), notnull: true } 
    created_by_id: { type: integer } 
    relations: 
    User: { onDelete: SET NULL, class: User, local: created_by_id, foreign: id, foreignAlias: groups_created } 

Répondre

4

Vous devez nous montrer votre code pour une réponse décente, mais ce sera quelque chose comme ci-dessous.

YAML:

Group: 
    columns: 
     .......... 
     creator_id:  { type: integer(4), notnull: true } 
    relations: 
     Creator:  { class: User, local: creator_id, foreign: id } 

PHP:

$user = $group->getCreator(); 
+0

Merci! Y a-t-il une partie de la documentation qui explique comment utiliser ces méthodes "magiques"? Aussi, que faire si je voulais changer la façon de l'appeler. Au lieu de getCreatedBy(). Est-ce que je ferais une sorte d'alias ou juste une autre méthode getter qui l'enveloppe? Merci encore! – Danny

+2

Voir http://www.symfony-project.org/jobeet/1_4/Doctrine/fr/03 et http://www.symfony-project.org/jobeet/1_4/Doctrine/fr/06 –

+0

Désolé de vous déranger encore. J'essaie d'accéder au créateur en faisant $ this-> getCreatedBy() et cela ne fonctionne pas. Des idées? – Danny

Questions connexes