我有一个Yii项目,我在那里使用yii-bootsrtap。我有一些静态页面(如FAQ和About页面),用户可以从NavBar访问。它看起来像这样:
Index | About us | FAQ | Login ...
我的问题是,当我导航到静态页面时,.active类没有应用于菜单栏项。它适用于其他页面,如索引和登录。
我正在使用自己的动作渲染这些静态页面:
// in SiteController.php:
public function actionStatic($view)
{
$this->render('static/' . $view);
}
答案 0 :(得分:1)
如果您使用CMenu
显示菜单,则在实际菜单项中添加active
键可能会解决您的问题。
如果您将以下内容添加到您的特定菜单项,如果您所在的控制器操作是“博客”,它将显示为活动状态:
'active'=>(Yii::app()->controller->action->id=='blog')
完整代码段看起来像这样:
$this->widget('zii.widgets.CMenu', array(
'items' => array(
'label'=>'Blog',
'active'=>(Yii::app()->controller->action->id=='blog')
)
);
答案 1 :(得分:0)
为了使默认的CMenu“active”属性起作用,你必须确保菜单url中的每个项目与你要去的确切url相匹配(在本例中为static / viewname)。
请参阅此处了解如何解决活动属性: https://github.com/yiisoft/yii/blob/master/framework/zii/widgets/CMenu.php#L306