2010-10-31 27 views
0

J'essaie d'effectuer une jointure simple sur deux tables et je n'arrive pas à trouver la bonne syntaxe - je sais qu'il me manque quelque chose de simple.Quelle est la bonne façon de récupérer des informations à partir de deux tables en utilisant la doctrine ORM

De la table 'utilisateurs' i besoin de l'id (fonctionne bien) et de la table 'méta' i besoin du last_name (ne fonctionne pas)

$q = Doctrine_Query::create() 
->from('Users u') 
->leftJoin('u.Meta m'); 

$users = $q->execute(); 

//attempt 1  
foreach($users as $user){ 
    $user_array[$user->id] = $user->last_name; 
} 

//attempt 2 
foreach($users as $user){ 
    $user_array[$user->id] = $user->m.last_name; 
} 

J'ai aussi essayé d'ajouter un explicite sélectionnez (u.id, m.last_name) à la requête, mais le résultat est toujours le même

Uncaught exception 'Doctrine_Record_UnknownPropertyException' with message 
'Unknown record property/related component "last_name" on "Users" 

Il est évident que la propriété que je suis en train d'accéder est pas dans la table des utilisateurs. -La requête fonctionne très bien, comme si je ne demande pas le champ last_name - mes travaux d'application comme prévu ..

//proof 
foreach($users as $user){ 
    $user_array[$user->id] = 'fake_last_name!'; 
} 

Quelqu'un peut-il donner un exemple simple de la façon dont je voulais le faire (même lien vers une page dans la documentation) tous les exemples de JONCTION DQL dans la sortie doucmentation la requête SQL au lieu de itérer les résultats ...

Doctrine Documentation: Join Syntax

Répondre