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 :
J'obtiens 6 lignes (oui je sais je suis un peu léger pour les données de test) comme prévu.
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
Par contre voici la traduction (enfin... je pense) sous doctrine :
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).
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();
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
Partager