我希望我的sidenav在yii2应用程序中的kartik中的项目在活动中更改颜色(单击并打开(。
对不起,我对PHP和YII非常新,这个问题可能很明显,但我真的在这里堆叠。
我已经尝试使用文档中解释的"主动"选项,但它不起作用。它没有显示任何错误,但行不通。我有一个文件 AdminMenu.php 写了Sidenav。和 panel.php 查看文件我显示的文件。
另外,我尝试添加Echo
$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']);
}
我认为你错误在这行
$ curentPage = yii :: $ app-> controller-> id;
yii :: $ app-> controller-> id仅返回控制器的名称,在此CASI中将为"管理员",然后您比较"管理员"永远不会平等。
要这样做,您可以进行实际控制器和这样的实际操作:
$ curentPage = yii :: $ app-> controller-> id。
比较将是成功,"主动"类添加到您的侧边栏