2008-11-12 4 views
1

Je suis en train de déconner avec Doctrine (version 1.0.3) pour voir si cela ferait un bon ajustement pour la collection d'applications que j'écris. J'essaie de faire une requête et de retourner seulement 3 champs. J'obtiens les champs corrects dans une table, mais la table de jointure je reçois tout quand je veux seulement un champ. J'ai écrit ce que le SQL devrait être dans phpMyAdmin et il ne renvoie que ce dont j'ai besoin.Pourquoi la doctrine retourne-t-elle plus de champs que je ne le demandais?

31 $ftp_info = Doctrine_Query::create() 
32   ->select('f.uid, f.home, s.identifier') 
33   ->from('FtpUser f') 
34   ->leftJoin('f.Submitter s') 
35   ->where('f.uid = ?',500) 
36   ->execute(); 
37 
38 print $ftp_info[0]->uid ."\n"; 
39 print $ftp_info[0]->home ."\n"; 
40 print $ftp_info[0]->Submitter->description ."\n"; 
41 print $ftp_info[0]->Submitter->identifier ."\n"; 

Il me donne une valeur pour la description quand je ne l'ai pas demandé dans la requête. Ces deux tables ont une relation un-à-un définie dans les méthodes setUp appropriées.

Des indices sur ce qui me manque?

Répondre

2

Je pense qu'il charge automatiquement ce champ de la base de données automatiquement lorsque vous le demandez. Voir here

Vous pourriez peut-être le résultat var_dump() confirmer cette

+0

Le var_dump semble être infini, mais vous avez raison est ce qui se passe. Je l'ai paresseux chargé les classes, mais pas les champs comme ça. Merci! –

Questions connexes