2015-10-20 99 views
0

如何顯示整棵樹。我有一個3級導航(首先是根)。通過該代碼,我只會看到第二級。Laravel etrepat/baum如何顯示整棵樹

$tree = \App\Category::where('identifier', 'soccer')->first(); 
foreach($tree->getDescendants()->toHierarchy() as $descendant) { 
    echo "{$descendant->name} <br>"; 
} 

回答

0

您可以通過執行得到整個樹,包括根:

$root = Table::where('id', '=', $id)->first(); 
$tree = $root->getDescendantsAndSelf()->toHierarchy(); 

現在爲$樹是你需要穿越它遞歸或隊列數據結構(DFS或BFS)樹結構。樹上的每個項目都會有它的孩子

兒童屬性一些僞遍歷是:

function traverseBFS(tree) { 
    q = Queue() 
    q.push(tree[0]); 
    while (!q.empty()) { 
     item = q.top(); q.pop(); 
     // do what you need with item 

     foreach (item->children as child) { 
      q.push(child); 
     } 
    } 
}