显示baobab php类嵌套集中的树
我使用Baobab PHP类来处理NestedSet。 我知道如何将树显示为en ul li递归菜单 有什么想法吗显示baobab php类嵌套集中的树,php,set,nested,Php,Set,Nested,我使用Baobab PHP类来处理NestedSet。 我知道如何将树显示为en ul li递归菜单 有什么想法吗 ======= == === === ============= tree_id id lft rgt name ======= == === === ============= 1 13 1 18 Accueil 1 14 2 3 Accueil 1 15 4 1
======= == === === =============
tree_id id lft rgt name
======= == === === =============
1 13 1 18 Accueil
1 14 2 3 Accueil
1 15 4 13 Produits
1 16 14 15 Liens
1 17 16 17 Mentions légales
1 18 5 6 PC
1 19 7 8 MAC
1 20 9 12 Linux
1 21 10 11 Ubuntu
======= == === === =============
相关函数是getTree(),它返回如下对象的对象:
Array
(
[0] => BaobabNode Object
(
[id] => 14
[lft] => 2
[rgt] => 3
[parentNode] => BaobabNode Object
(
[id] => 13
[lft] => 1
[rgt] => 18
[parentNode] =>
[fields_values] => Array
(
[tree_id] => 1
[name] => Accueil
[slug] => accueil
)
[children] => Array
*RECURSION*
)
[fields_values] => Array
(
[tree_id] => 1
[name] => Accueil
[slug] => accueil
)
[children] => Array
(
)
)
[1] => BaobabNode Object
(
[id] => 15
[lft] => 4
[rgt] => 13
[parentNode] => BaobabNode Object
(
[id] => 13
[lft] => 1
[rgt] => 18
[parentNode] =>
[fields_values] => Array
(
[tree_id] => 1
[name] => Accueil
[slug] => accueil
)
[children] => Array
*RECURSION*
)
[fields_values] => Array
(
[tree_id] => 1
[name] => Produits
[slug] => produits
)
[children] => Array
(
[0] => BaobabNode Object
(
[id] => 18
[lft] => 5
[rgt] => 6
[parentNode] => BaobabNode Object
*RECURSION*
[fields_values] => Array
(
[tree_id] => 1
[name] => PC
[slug] => pc
)
[children] => Array
(
)
)
[1] => BaobabNode Object
(
[id] => 19
[lft] => 7
[rgt] => 8
[parentNode] => BaobabNode Object
*RECURSION*
[fields_values] => Array
(
[tree_id] => 1
[name] => MAC
[slug] => mac
)
[children] => Array
(
)
)
[2] => BaobabNode Object
(
[id] => 20
[lft] => 9
[rgt] => 12
[parentNode] => BaobabNode Object
*RECURSION*
[fields_values] => Array
(
[tree_id] => 1
[name] => Linux
[slug] => linux
)
[children] => Array
(
[0] => BaobabNode Object
(
[id] => 21
[lft] => 10
[rgt] => 11
[parentNode] => BaobabNode Object
*RECURSION*
[fields_values] => Array
(
[tree_id] => 1
[name] => Ubuntu
[slug] => ubuntu
)
[children] => Array
(
)
)
)
)
)
)
[2] => BaobabNode Object
(
[id] => 16
[lft] => 14
[rgt] => 15
[parentNode] => BaobabNode Object
(
[id] => 13
[lft] => 1
[rgt] => 18
[parentNode] =>
[fields_values] => Array
(
[tree_id] => 1
[name] => Accueil
[slug] => accueil
)
[children] => Array
*RECURSION*
)
[fields_values] => Array
(
[tree_id] => 1
[name] => Liens
[slug] => liens
)
[children] => Array
(
)
)
[3] => BaobabNode Object
(
[id] => 17
[lft] => 16
[rgt] => 17
[parentNode] => BaobabNode Object
(
[id] => 13
[lft] => 1
[rgt] => 18
[parentNode] =>
[fields_values] => Array
(
[tree_id] => 1
[name] => Accueil
[slug] => accueil
)
[children] => Array
*RECURSION*
)
[fields_values] => Array
(
[tree_id] => 1
[name] => Mentions légales
[slug] => mentions-legales
)
[children] => Array
(
)
)
)
我不知道如何循环递归地显示ulli的html导航
有什么想法吗
======= == === === =============
tree_id id lft rgt name
======= == === === =============
1 13 1 18 Accueil
1 14 2 3 Accueil
1 15 4 13 Produits
1 16 14 15 Liens
1 17 16 17 Mentions légales
1 18 5 6 PC
1 19 7 8 MAC
1 20 9 12 Linux
1 21 10 11 Ubuntu
======= == === === =============
感谢您的帮助。您应该能够执行以下操作:
function displayTree($nodes) {
echo '<ul>';
foreach ($nodes->getChildren() as $childNode) { // $childNode is a BaobabNode Object
echo '<li>';
echo $childNode->getName(); // or equivalent method to get the name
if (count($childNode->children) > 0) {
displayTree($childNode->children);
}
echo '</li>';
}
echo '</ul>';
}
函数显示树($nodes){
回声“”;
foreach($nodes->getChildren()作为$childNode){/$childNode是一个baobabonode对象
回音“- ”;
echo$childNode->getName();//或获取名称的等效方法
如果(计数($childNode->children)>0){
displayTree($childNode->children);
}
回音“
”;
}
回声“
”;
}
调用此函数时,使用getTree()的结果作为参数