2010-07-16 10 views
0

J'ai cherché longtemps, mais je n'arrive pas à récupérer deux objets liés dans une seule requête. J'utilise Doctrine et Symfony (utilise Doctrine par défaut).Récupérer des objets liés avec Doctrine et Symfony

Voici une partie de mon schema.yml:

Member: 
    columns: 
    ...some fields... 

Report: 
    columns: 
    member:  { type: integer, notnull: true } 
    ...some fields... 
    relations: 
    Member: { onDelete: CASCADE, local: member, foreign: id, foreignAlias: Members } 

Et cette ma demande « de base » qui travaille pour récupérer uniquement l'objet du rapport:

public function getReports($place,$max = 5) { 
    $q = Doctrine_Query::create() 
      ->from('Report sr') 
      ->where('sr.place = ?',$place) 
      ->limit($max) 
      ->orderBy('sr.date DESC'); 
    return $q->execute(); 
} 

Un rapport a été commis par un membre dans un endroit. J'ai besoin de récupérer l'objet membre pour l'afficher avec ses champs mais je ne sais vraiment pas comment faire ça.

Si vous avez une idée ou une méthode pour le faire, j'apprécierai vraiment votre aide.

Répondre

1
$q = Doctrine_Query::create() 
->from('Report sr') 
->innerJoin('sr.Members m'); 

Ca y est, assez simple je l'ai déjà essayé quelque chose comme ça :)

+0

avec quelques leftJoin mais symfony émet des exceptions comme ceci: 500 | Erreur interne du serveur | Doctrine_Table_Exception Relation inconnue alias Membres – Cyril

+0

Pour information, j'ai effacé le cache et la relation est comme collée dans la question – Cyril

+0

Hmmm mon erreur, ça devrait être Membre, pas Membres. – DuoSRX