2010-07-31 13 views
0

Je me demandais s'il y a un moyen d'obtenir un enregistrement avec toutes les données relationnelles, quelque chose comme un « profond Fetch »Comment récupérer un enregistrement Doctrine avec tous les enregistrements relationnels?

Donc, si un modèle enfant était lié à un autre parent modèle, peut-on aller chercher l'enfant & alors accède à Child-> Parent-> nom à travers une seule requête?

Doctrine lance une requête dès qu'une relation est accédée. Est-ce trop cher? A-t-il besoin d'être optimisé?

grâce

Répondre

2

Doctrine hydrate automatiquement les objets connexes lorsque vous sélectionnez les champs de relations que:

Doctrine_Query::create() 
    ->select('a.*, c.*) 
    ->from('Article a') 
    ->innerJoin('Category c'); 

Dans cet exemple, les objets et l'article Catégorie sont hydratés (aucune requête supplémentaires).

+0

merci Kuba. Cela signifie que je vais devoir écrire mes requêtes personnalisées, et il n'y a pas de surcharge de la méthode magique fetch() pour faire ça! – Prasad

+0

Vous voulez dire les méthodes find *? Leur utilisation n'est pas conseillée (performance sage). –