Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Doctrine] Fetching a Tree with Relations

Pagina: 1
Acties:

  • isomis
  • Registratie: Mei 2005
  • Laatst online: 27-11 20:24
Heb een vraag met betrekking tot "Fetching a Tree with Relations"

Ik wil de children van een hoofd item ophalen. Dat lukt, maar ik wil ook de left join binnen halen.

Hier leggen ze uit hoe dit moet:
http://www.doctrine-proje...ing-a-tree-with-relations

echter het lukt mij niet om de childrens binnen te halen, wat doe ik fout?

PHP:
1
2
3
4
5
6
7
8
9
10
       $q = Doctrine_Query::create()
        ->from('Category c')
        ->leftJoin('c.Translation t')
        ->where('c.id = ?', $id);

        $treeObject = Doctrine_Core::getTable('Category')->getTree();
        $treeObject->setBaseQuery($q);
        $tree = $treeObject->fetchTree()->getNode->getChildren();

        print_r($tree);die();


Heb de getNode->getChildren() ook op andere regels geprobeerd. Ze zeggen dat het mogelijk is onderaan het artikel.

Zonder left join lukt het wel om een node op te vragen:

PHP:
1
2
3
        $categoryTable  = Doctrine_Core::getTable('Category')->findOneById($result['id']);
        $hasChildren = $categoryTable->getNode()->hasChildren();
        $hasParent = $categoryTable->getNode()->hasParent();

[ Voor 15% gewijzigd door isomis op 02-10-2010 18:57 ]

Webontwikkelaar - Kitesurfer | Gamer


  • Cartman!
  • Registratie: April 2000
  • Niet online
Waarom staat er ZF in de titel als dit over Doctrine gaat? Krijg je ook nog foutmeldingen of gewoon geen results? Je kunt ook de query even uitschrijven en in phpMyAdmin uitvoeren, daarna bouw je t om naar de Doctrine query language.

  • mithras
  • Registratie: Maart 2003
  • Niet online
Ik gebruik dit stukje om mijn i18n nestedset op te halen, dat werkt wel:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$tree  = $this->getTable()->getTree();
$q = Doctrine_Query::create()
                   ->select('p.id, p.url, p.type, p.visible, p.created_at, p.updated_at')
                   ->from('Application_Model_Page p')
                   ->leftJoin('p.Translation t');

if (null !== $language) {
    $q->where('t.lang = ?', $language);
}

$tree->setBaseQuery($q);
$roots = $tree->fetchRoots();