Yii控制器中的一个功能,以及Zii的CMenu

时间:2014-12-13 10:48:14

标签: php yii

我的SiteController.php中有一个函数根据地址显示数据库中的数据。  id=value

public function actionIndex($id='index')
    {
        // renders the view file 'protected/views/site/index.php'
        // using the default layout 'protected/views/layouts/main.php'

        $this->pageTitle = 'Strona główna';
        $criteria  = new CDbCriteria(
            array(
                'condition' => 'name = :Name',
                'params' => array(':Name' => $id),
            )
        );
        $ModelPages = Pages::model()->findAll($criteria);
        $this->render('index',
                array(
                    'Model' => $ModelPages,
                )
            );
    }

如何从接受地址的Zii改进设置CMenu。输入CMenu index.php?id=value/index.php/id/value后无效。我想以显示index.php/value的方式解决。如果我手动输入地址栏index.php?id=value,它就会起作用。

<?php $this->widget('zii.widgets.CMenu',array(
            'items'=>array(
                array('label'=>'Home', 'url'=>array('index.php')),
                array('label'=>'O nas', 'url'=>array('/site/page', 'view'=>'about')),
                array('label'=>'Galeria', 'url'=>array('/site/contact')),
                array('label'=>'Kontakt', '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)
            ),
        )); ?>

1 个答案:

答案 0 :(得分:1)

您需要在rule配置中添加urlManager。像这样:

'<id:[^\/]*>' => 'site/index',

置于其他规则之上。