HTML上的Yii2可见性属性

时间:2015-02-25 08:01:32

标签: html css visibility yii2

我用过

<li class="active" style="visibility:" . <?php User::isSuperAdmin() ?> . "">

但它没有用。

我知道这是错的,那么正确的做法是什么? 我希望特定的<li>仅对SuperAdmin用户可见(条件在User::isSuperAdmin()函数内)。

我正在为我的UI使用AdminLTE资产包,所以我摆脱了Nav小部件以实现可折叠的侧栏。

有人请帮帮我。

1 个答案:

答案 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
    ],
]);

http://www.yiiframework.com/doc-2.0/yii-widgets-menu.html