2

我想在我的导航菜单中使用 bootstrap 和 yii 设置一个徽章,以显示用户有多少警报。

    <?php $this->widget('bootstrap.widgets.TbNavbar',array(
        'items'=>array(
            array(
                'class'=>'bootstrap.widgets.TbMenu',
                'items'=>
array('label'=>'Alerts', 'url'=>array('/user/alerts')),
array(array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),
                    array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)
                ),
            ),
        ),
    )); ?>

我可以在里面放一个文字和一个徽章吗?喜欢:“3 个警报”.. 哪里 '3' 是我的徽章?和警报将是警报页面的链接?

$this->widget('bootstrap.widgets.TbBadge', array(
            'type'=>'inverse',
            'label'=>'2',
        )); 
4

1 回答 1

2

CBaseController::widget 的第三个参数决定了小部件内容应该被捕获到变量中还是直接输出。默认情况下,它输出内容。 http://www.yiiframework.com/doc/api/1.1/CBaseController#widget-detail

此外,CMenu类具有encodeLabel属性http://www.yiiframework.com/doc/api/1.1/CMenu#encodeLabel-detail。将其设置为true将按原样输出标签(不进行 HTML 编码)

尝试这个:

$badge=$this->widget('bootstrap.widgets.TbBadge', array(
    'type'=>'inverse',
    'label'=>'2',
), true);

$this->widget('bootstrap.widgets.TbNavbar',array(
    'items'=>array(
        array(
            'class'=>'bootstrap.widgets.TbMenu',
            'encodeLabel'=>false,
            'items'=>
                array(
                    array('label'=>$badge.' Alerts', 'url'=>array('/user/alerts')),
                    array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),
                    array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)
                ),
            ),
    ),
));
于 2013-05-08T11:40:40.423 回答