kohana框架3.1.2如何通过嵌套集制作菜单

时间:2013-12-03 03:08:58

标签: css menu kohana submenu nested-sets

我正在使用kohana框架3.1.2并且我想要制作嵌套菜单...我正在使用ORM_MPTT类来处理我正在做的所有事情...在视图中我得到了数组,并且在这个数组中所有的分类和子分类是在一行...如果我做foreach()我得到这样的结果:

  cat1
  cat1_1
  cat1_2
  cat1_2_1
  cat1_2_2
  cat1_2_3
  cat1_3
  cat2
  cat3
  cat3_1
  cat3_2
  cat3_2_1
  cat3_2_2
  cat3_2_2_1
  cat3_2_2_2
  cat3_2_2_2_1
  cat3_2_2_2_2
  cat3_2_2_2_3
  cat3_2_3
  cat3_3
  cat4
  cat5

希望我正确描述一切...... 我想要这样的结果:

  <nav>
<ul>
    <li>Parent 1
        <ul>
            <li>Child 1</li>
               <li>Child 2
                  <ul>
                     <li>Child 2 1</li>
                     <li>Child 2 2</li>
                     <li>Child 2 3</li>
                  </ul>
                </li>
            <li>Child 3</li>
        </ul>
    </li>
    <li>Parent 2
        <ul>
            <li>Child 4</li>
            <li>Child 5</li>
            <li>Child 6</li>
        </ul>
    </li>
</ul>

非常感谢

1 个答案:

答案 0 :(得分:0)

您必须为每个子树递归调用渲染函数。只要有另一个子树,它就会输出另一个-list。

main_view.php

<?php echo new View('view2',array('node'=>$root_node)) ?>

view2.php

<ul>
    <?php foreach ($node->children() as $child):?>
        <li><?php echo $child->title?></li>
        <?php if ( ! $child->is_leaf()): ?>
            <?php echo new View('view2',array('node'=>$child)) ?>
        <?php endif; ?>
    <?php endforeach; ?>
<ul>

如果您还希望HTML正确无误,则可以使用$ node-&gt; level()函数。但这确实是不必要的