在我的 main.php
,我有一个菜单:
'items' => [
['label' => 'Home', 'url' => ['/site/index']],
['label' => 'Biz Staff', 'url' => ['bizstaff/index'], 'visible' => User::isBizAdmin(), 'items' => [
['label' => 'Staff List', 'url' => 'index.php?r=user/index'],
['label' => 'Add Staff', 'url' => 'index.php?r=user/create'],
]],
['label' => 'Transaction', 'url' => ['transactions/index'], 'visible' => User::isBizAdmin() || User::isBizStaff(), 'items' => [
['label' => 'Transactions', 'url' => 'index.php?r=transactions/index'],
['label' => 'Add Transactions', 'url' => 'index.php?r=transactions/create'],
]],
Yii::$app->user->isGuest ?
['label' => 'Login', 'url' => ['/site/login']] :
['label' => 'Logout (' . Yii::$app->user->identity->username . ')',
'url' => ['/site/logout'],
'linkOptions' => ['data-method' => 'post']
],
],
在这里,我以 superadmin 的身份登录(请注意,只有Home 和Logout 菜单对superadmin可见em> 用户)。在主页(主页菜单)内有一个 Biz Admins 列表,它位于 GridView
中。小部件。它有一个操作 列,其中放置了查看、更新和删除图标。当我单击特定 Biz Admin 的 View 图标时,它将呈现该 Biz Admin 的详细 View 页面,其中可以看到其Store Name 和List of Staff。在此页面中,有一个 View Store 按钮,该按钮将重定向到 bizadmin
查看/页面。
每当superadmin登陆bizadmin
查看/页面,菜单栏现在应该更改为:
Home, Biz Staff, Transaction, Logout
我该怎么做?是否设置在visible
属性?
非常感谢您的任何回答。我目前陷入了这个问题。
最佳答案
是的。您应该使用 visible
属性。 'visible' => true
或 'visible' => false
。
或者你可以组装一个数组。像那样:
NavBar::begin([
'brandLabel' => 'My Company',
'brandUrl' => Yii::$app->homeUrl,
'options' => [
'class' => 'navbar-inverse navbar-fixed-top',
],
]);
$menuItems = [
['label' => 'Home', 'url' => ['/site/index']],
['label' => 'About', 'url' => ['/site/about']],
['label' => 'Contact', 'url' => ['/site/contact']],
];
if (Yii::$app->user->isGuest) {
$menuItems[] = ['label' => 'Signup', 'url' => ['/site/signup']];
$menuItems[] = ['label' => 'Login', 'url' => ['/site/login']];
} else {
$menuItems[] = [
'label' => 'Logout (' . Yii::$app->user->identity->username . ')',
'url' => ['/site/logout'],
'linkOptions' => ['data-method' => 'post']
];
}
echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => $menuItems,
]);
NavBar::end();
参见高级模板 - https://github.com/yiisoft/yii2-app-advanced/blob/master/frontend/views/layouts/main.php
关于php - Yii2 菜单栏对特定用户的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28621724/