无脂框架:如何使用子菜单创建动态菜单

时间:2013-11-14 06:33:36

标签: php fat-free-framework

我有这张桌子

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如果您认为我的桌子需要编辑,请不要担心,请告诉我您的最佳解决方案!

1 个答案:

答案 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现在是一个多维数组,带有子键,如果该页面有一些孩子。

相关问题