我有这张桌子
id children voce alias pubblicato
11 NULL Chi Siamo chi-siamo 1
12 11 Chi Siamo - Sub chi-siamo-sub 1
因此id 12是11的子项(子菜单)。
使用此块我可以打印菜单的第一级
<repeat group="{{ @result }}" key="{{ @ikey }}" value="{{ @voce }}">
<li><a href="{{ @ABSOLUTE_PATH }}/{{ trim(@voce.alias) }}">{{ trim(@voce.voce) }}</a></li>
</repeat>
(结果是查询SQL的结果)。
当然我需要在我的方案菜单中获取(伪//引导程序html代码)
<li><a href="#">ID 11 menu</a>
<ul class="dropdown-menu">
<li><a href="#">Id 12 menu</a></li>
</ul>
所以,在(非常!)伪代码
中 if (children is not null) {
don't echo </li>
echo <ul class="dropdown">
echo voce where children == parent
}
非常感谢。
PS如果您认为我的桌子需要编辑,请不要担心,请告诉我您的最佳解决方案!
答案 0 :(得分:1)
我通过以下方式做到了这一点:
// load page tree
$pages = $model->find();
$pageTree = array();
$pagesByID = array();
foreach($pages as $index => $page)
$pagesByID[$page->_id] = $page->cast();
// reorder to tree
foreach ($pagesByID as &$value)
if ($parent = $value['pid'])
$pagesByID[$parent]['childs'][] = &$value;
else
$pageTree[] = &$value;
$ pageTree现在是一个多维数组,带有子键,如果该页面有一些孩子。