如何使 SideNav 的活动项目成为另一种风格?
How to make active item of SideNav in another style?
我希望 yii2 应用程序中 Kartik 的 SideNav 中的项目在处于活动状态(被单击并打开)时更改颜色。
抱歉,我是 PHP 和 Yii 的新手,这个问题可能很明显,但我真的在这里。
我已经尝试使用文档中说明的 "active" 选项,但它不起作用。它没有显示任何错误,但不工作。我有一个文件 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 only return 你的控制器的名称,在这个casi中将是"admin"然后你比较"admin"等于"controller/action" ('admin/personal') 这永远不会等于 .
为此,您可以像这样连接实际控制器和实际操作:
$curentpage = Yii::$app->controller->id.'/'.Yii::$app->controller->action->id;
比较成功,"active"class添加到你的侧边栏
我希望 yii2 应用程序中 Kartik 的 SideNav 中的项目在处于活动状态(被单击并打开)时更改颜色。
抱歉,我是 PHP 和 Yii 的新手,这个问题可能很明显,但我真的在这里。
我已经尝试使用文档中说明的 "active" 选项,但它不起作用。它没有显示任何错误,但不工作。我有一个文件 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 only return 你的控制器的名称,在这个casi中将是"admin"然后你比较"admin"等于"controller/action" ('admin/personal') 这永远不会等于 .
为此,您可以像这样连接实际控制器和实际操作:
$curentpage = Yii::$app->controller->id.'/'.Yii::$app->controller->action->id;
比较成功,"active"class添加到你的侧边栏