> 無限級菜單和分類也是經常用到的功能, 這里提供一個參考案例, 具體項目可就該對應的dom結構
## 控制器代碼
```
<?php
// 樹狀結構
$menus = [
[
'title' => '菜單1',
'sub' => [
['title' => '菜單1.1'],
['title' => '菜單1.2'],
['title' => '菜單1.3'],
['title' => '菜單1.4'],
]
],
[
'title' => '菜單2',
'sub' => [
['title' => '菜單2.1'],
['title' => '菜單2.2'],
['title' => '菜單2.3'],
['title' => '菜單2.4'],
]
],
[
'title' => '菜單3',
'sub' => [
[
'title' => '菜單3.1',
'sub' => [
['title' => '菜單3.1.1'],
['title' => '菜單3.1.2'],
[
'title' => '菜單3.1.3',
'sub' => [
['title' => '菜單3.1.3.1'],
['title' => '菜單3.1.3.2'],
]
],
]
],
['title' => '菜單3.2'],
['title' => '菜單3.3'],
['title' => '菜單3.4'],
]
],
];
// 賦值給模板
$view->assign('menus', $menus);
$view->display('index');
```
## 模板文件
```
<!DOCTYPE html>
<html>
<head>
<title>無限級菜單</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css" />
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="http://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js"></script>
</head>
<body>
<ul php-init="echo_menu($menus)" php-function="echo_menu($menus)">
<li php-repeat="$menus as $menu">
{$menu.title}
<ul php-if="isset($menu['sub'])" php-call="echo_menu($menu['sub'])"></ul>
</li>
</ul>
</body>
</html>
```
## 最終效果
