1

私はこのテーブルを持っています

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>

(result はクエリ 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 私のテーブルを編集する必要があると思われる場合でも、心配しないで、あなたの最善の解決策を教えてください!

4

1 に答える 1

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 は、そのページにいくつかの子がある場合、子キーを持つ多次元配列になりました。

于 2013-11-14T08:59:27.877 に答える