Yii2-widget 多级菜单列表 Menu

yii\widgets\Menu 使用嵌套的 HTML 列表显示一组多级菜单。

菜单会检查当前路由和请求参数来切换某些菜单项与活动状态。

// 类文件
use yii\widgets\Menu;

echo Menu::widget([
    'items' => [
        ['label'=>'Home', 'url'=>['site/index']],
        ['label'=>'Products', 'url'=>['product/index'], 'items'=>[
            ['label' => 'New Arrivals', 'url'=>['product/index', 'tag'=>'new']],
            ['label' => 'Most Popular', 'url'=>['product/index', 'tag'=>'popular']],
        ]],
        ['label'=>'Login', 'url'=>['site/login'], 'visible'=>Yii::$app->user->isGuest],
    ],
]);

常用参数:

items              array     菜单项列表。每一个菜单项应该是下列结构的数组:
    label     string         菜单项的标签
    url       string|array   菜单项的网址
    options   array          菜单项的 HTML 属性
    visible   boolean        菜单项是否可见,默认为 true
    active    boolean        菜单项是否处于活动状态
    template  string         菜单项的模板
    items     array          子菜单项,格式与父项相同
    encode    boolean        菜单项是否进行 HTML 编码
options            array     菜单容器标签的 HTML 属性(最外围的 ul 标签)    
    tag       string         菜单容器的标签,默认为"ul"
itemOptions        array     所有菜单项的 HTML 属性
    tag       string         菜单项的容器标签,默认为"li"
linkTemplate       string    渲染菜单项的模板,默认为'<a href="{url}">{label}</a>'
labelTemplate      string    渲染空链接菜单项的模板,默认为'{label}'
submenuTemplate    string    渲染子菜单列表的模板,默认为"\n<ul>\n{items}\n</ul>\n"
firstItemCssClass  string    第一个菜单项的 CSS 类
lastItemCssClass   string    最后一个菜单项的 CSS 类
hideEmptyItems     boolean   是否隐藏空菜单项,默认为 true
activateItems      boolean   是否自动激活项目,默认为 true
activateParents    boolean   当子菜单项是活动的时候,是否激活父菜单项,默认为 false
activeCssClass     string    活动的菜单项的 CSS 类
encodeLabels       boolean   菜单项是否进行 HTML 编码,默认为 true