Bonjour,

je viens vers vous car je n'ai rien trouvé sur le net qui puisse répondre à ma question.

Voici mon problème.
J'ai une table category qui est un nested set.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Category:
  actAs:
    NestedSet:
      hasManyRoots: true
      rootColumnName: root_id
  columns:
    name:
      type: string()
  relations:
    Item:
      local: id
      foreign: category_id
      type: one
De ce fait une catégorie peut contenir plusieurs enfants ...

J'ai également une table item qui peuvent être contenus par une catégorie.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Item:
  columns:
    name:
      type: string()
    category_id:
      type: integer
  relations:
    Category:
      local: category_id
      foreign: id
      type: one

En utilisant (intensément) le manuel de doctrine j'ai réussi à créer mes tables dans la base et à les charger avec des données de fixtures. Tout marche très bien.

Ensuite je voudrais afficher mon arborescence de catégorie avec les items associés aux catégories.

Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Categorie 1 
 - Item1
  - Catégorie 2
   - Item2
   - Item3
 - Catégorie 3
  - Item4
Voici le code que j'ai utilisé:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
   //récupère toute la table categorie avec les item associés
        $q = Doctrine_Query::create()
            ->select('c.name, i.name')
            ->from('Category c')
            ->leftJoin('c.Item i')
            ->setHydrationMode(Doctrine_Core::HYDRATE_ARRAY);
 
        $treeObject = Doctrine_Core::getTable('Category')->getTree();
        $treeObject->setBaseQuery($q);
        $tree = $treeObject->fetchTree();
        $treeObject->resetBaseQuery();
        print_r($tree);
Ceci devrait automatiquement me fournir un tableau hiérarchisé avec mes catégories et mes items. Or mon problème et que si une catégorie possèdent plusieurs items, seul le premier est stocké dans le tableau.
J'ai vérifié la requête qui est effectué par doctrine et elle me rend toutes les catégories et tous les items associés.

Est ce que la méthode fetchTree ne prend que le premier élément?
Bref, je suis perdu et je n'ai plus beaucoup de cheveux

Merci d'avance.