我正在使用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>
非常感谢
答案 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()函数。但这确实是不必要的