我希望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']);
}
答案 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;
比较成功,“活动”类添加到侧边栏