Yii一个功能在控制器中,CMenu来自Zii


Yii one function in controler, and CMenu from Zii

我有一个函数,在我的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)
            ),
        )); ?>
您需要

urlManager配置中添加rule。像这样:

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

把它放在其他规则之上