有条件地显示Nav小部件的项目

beg*_*ner 3 yii2 yii2-advanced-app

我想为菜单项添加一个条件,所以当用户登录时,他会根据他的情况看到菜单user_type.这是我的代码.

Nav::widget([
    'encodeLabels' => false,
    'options' => ['class' => 'sidebar-menu'],
    'items' => [
    // I want to insert condition here
    [
        'label' => '<span class="fa fa-fw fa-globe"></span> Menu1',
        'url' => ['/menu1'],
    ],
    [
        'label' => '<span class="fa fa-fw fa-list-alt"></span> Menu2',
        'url' => ['/menu2'],
    ],
]);
Run Code Online (Sandbox Code Playgroud)

有些用户可以访问,menu1而其他用户只能访问menu2.

aro*_*hev 5

1)对于单项使用visible属性(信息可在此处获得):

[
    'label' => '<span class="fa fa-fw fa-globe"></span> Menu1',
    'url' => ['/menu1'],
    'visible' => $condition,
],
Run Code Online (Sandbox Code Playgroud)

2)作为替代方案,您可以在渲染窗口小部件之前构建数组,并有条件地包含/排除某些依赖于条件的数组项.

$items = [];

if ($condition) {
    $items[] = ...
} else {
    ...
}

echo Nav::widget([
    'items' => $items,
]);
Run Code Online (Sandbox Code Playgroud)

例如,请参阅高级模板前端布局中如何形成菜单项.