我安装了 yii2 2 admin,我正在制作 rbac,我遵循了一个很好的视频教程。 一切都运行良好,但仅在我的主目录中注销.php没有出现。 这是我的主要.php,我该如何解决它? 我尝试了很多来找到我的错误,但即使是我的控制器看起来也不错,但是,没有 filte,我的注销运行良好, 它正在评估:
echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => Helper::filter($menuItems),
]);
<?php
/* @var $this yiiwebView */
/* @var $content string */
use yiihelpersHtml;
use yiibootstrapNav;
use yiibootstrapNavBar;
use yiiwidgetsBreadcrumbs;
use appassetsAppAsset;
use mdmadmincomponentsHelper;
AppAsset::register($this);
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
<meta charset="<?= Yii::$app->charset ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?= Html::csrfMetaTags() ?>
<title><?= Html::encode($this->title) ?></title>
<?php $this->head() ?>
</head>
<body>
<?php $this->beginBody() ?>
<div class="wrap">
<?php
$menuItems = [
['label' => 'bosh sahifa', 'url' => ['/admin/default/index']],
['label' => 'postlarimiz', 'url' => ['/admin/post/index']],
['label' => 'user management', 'url' => ['/rbac/default/index']],
Yii::$app->user->isGuest ? (
['label' => 'Login', 'url' => ['/site/login']]
) : (
'<li>'
. Html::beginForm(['/site/logout'], 'post')
. Html::submitButton(
'Logout (' . Yii::$app->user->identity->username . ')',
['class' => 'btn btn-link logout']
)
. Html::endForm()
. '</li>'
)
];
NavBar::begin([
'brandLabel' => 'My Company',
'brandUrl' => Yii::$app->homeUrl,
'options' => [
'class' => 'navbar-inverse navbar-fixed-top',
],
]);
echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => Helper::filter($menuItems),
]);
NavBar::end();
?>
<div class="container">
<?= Breadcrumbs::widget([
'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
]) ?>
<?= $content ?>
</div>
</div>
<footer class="footer">
<div class="container">
</div>
</footer>
<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>
您使用mdmadmincomponentsHelper::filter($menuItems)
删除当前用户无法访问的菜单项(这包括登录和注销操作),因此您需要为这些操作添加 RBAC 例外
'as access' => [
'class' => 'mdmadmincomponentsAccessControl',
'allowActions' => [
'site/logout', // or 'site/*' if you prefer
]
],
或在管理模块中创建有权访问这些路由
的来宾角色有关示例配置,请参阅文档
尝试更改$menuItems
Yii::$app->user->isGuest ? (
['label' => 'Login', 'url' => ['/site/login']]
) : (
'<li>'
. Html::beginForm(['/site/logout'], 'post')
. Html::submitButton(
'Logout (' . Yii::$app->user->identity->username . ')',
['class' => 'btn btn-link logout']
)
. Html::endForm()
. '</li>'
)
上
[
'label' => 'Login',
'url' => ['/site/login'],
'visible' => Yii::$app->user->isGuest,
],
[
'label' => 'Logout (' . Yii::$app->user->identity->username . ')',
'url' => ['/site/logout'],
'linkOptions' => ['data-method' => 'post'],
'visible' => !Yii::$app->user->isGuest,
],