Bonjour,
Je me tourne vers vous, las de m'arracher les cheveux. Je dispose de 2 tables liées entre elle par une relation 1/1.

voici la requête version SQL qui ne pose pas de souci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT i.nom as inter, p.nom as patient
FROM intervention i 
LEFT OUTER JOIN patient.p 
ON i.patient_id = p.id
J'obtiens 6 lignes (oui je sais je suis un peu léger pour les données de test) comme prévu.

Par contre voici la traduction (enfin... je pense) sous doctrine :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$q = Doctrine::getTable('intervention')
            ->createQuery('i')
            ->select('i.nom as inter, p.nom as nom')
            ->leftJoin('i.patient p')
            ->fetchArray();
Dans la barre de débogage de Symfony, la requête SQL créée par ce bout de code renvoit bien la requête SQL précédente (à quelques alias prêts).

Le souci vient du fait que je n'obtiens alors qu'une seule ligne en réponse dans le tableau $q.

Je précise que "i.patient" correspond bien au nom de la relation entre les tables, la valeur de retour est bien utilisée comme un tableau et non comme une collection d'objet, la mise à plat du tableau $q par un print_r($q) me montre effectivement un tableau avec un seul élément...

Bref, tout cela a bien fait chauffer les neurones. Je crains fort que la solution ne soit 'on ne peut plus simple', mais je dois avouer que je ne la trouve pas.

Merci de votre aide.

PS : J'utilise Symfony 1.4 et Doctrine 1.2