我用过
<li class="active" style="visibility:" . <?php User::isSuperAdmin() ?> . "">
但它没有用。
我知道这是错的,那么正确的做法是什么?
我希望特定的<li>
仅对SuperAdmin用户可见(条件在User::isSuperAdmin()
函数内)。
我正在为我的UI使用AdminLTE资产包,所以我摆脱了Nav
小部件以实现可折叠的侧栏。
有人请帮帮我。
答案 0 :(得分:1)
在文件夹/ components中创建一个新的WebUser类:
namespace app\components;
class WebUser extends yii\web\User
{
public function isSuperAdmin()
{
//Define here how the superAdmin is defined
return !$this->isGuest && $this->getIdentity()->username == 'superAdmin';
}
}
在配置文件(/config/web.php)中:
'components' => [
'user' => [
'class' => 'app\components\WebUser',//The default class id edited
...
],
...
]
在你看来之后:
<li class="active <?= Yii::$app->user->isSuperAdmin() ? '' : 'hidden' ?>">
对于菜单,我建议您使用小部件yii \ widgets \ Menu:
echo Menu::widget([
'items' => [
['label' => 'Home', 'url' => ['/site/index']],
['label' => '...', 'url' => ['/site/superadmin'], 'visible' => Yii::$app->user->isSuperAdmin()],//Here is a good way
],
]);