如何以其他样式制作SideNav的活动项目?

时间:2019-07-05 06:45:09

标签: yii2 kartik-v sidenav

我希望yii2应用程序中Kartik的SideNav中的项目在活动时(单击并打开)更改颜色。

对不起,我对PHP和Yii还是很陌生,这个问题可能很明显,但我确实在这里提出。

我已经尝试使用文档中介绍的“活动”选项,但是它不起作用。它没有显示任何错误,但是不起作用。我有一个文件 adminMenu.php ,其中写入了SideNav。以及显示我的 panel.php 视图文件。

此外,我尝试添加回显

$this->render('adminMenu'['currentPage'=>'admin/personal']);

但是它显示了错误,因此我暂时将其注释。

adminMenu.php:

class adminMenu extends Widget{
    public function init(){
        $curentpage = Yii::$app->controller->id ;
        parent::init();
        ob_start();


    echo SideNav::widget([
        'type' => SideNav::TYPE_PRIMARY,
        'headingOptions' => ['class'=>'head-style'],
        'items' => [
            ['label' => 'Personal', 
             'url' => ['/admin/personal'], 
             'active' => ($curentpage == 'admin/personal')],

            ['label' => 'Clients', 
             'url' => ['/admin/clients'], 
             'active' => ($curentpage == 'admin/clients')],

           ...
    ]);

panel.php:

if(\Yii::$app->user->can('Admin')){
    echo adminMenu::widget();
    //echo $this->render('adminMenu'['currentPage'=>'admin/personal']);
}

1 个答案:

答案 0 :(得分:0)

我认为您在此行中是错误的

  

$ curentpage = Yii :: $ app-> controller-> id;

Yii :: $ app-> controller-> id仅返回控制器的名称,在此案例中将为“ admin”,然后将“ admin”等于“ controller / action”(“ admin / personal”)进行比较永远不会平等。

为此,您可以将实际的控制器和实际的动作连接起来,如下所示:

  

$ curentpage = Yii :: $ app-> controller-> id。'/'。Yii :: $ app-> controller-> action-> id;

比较成功,“活动”类添加到侧边栏