请教CWebApplication中问题

我在config/main.PHP中添加一个数组:




'meun'=>array(

	            array('label'=>'类别管理', 'url'=>array('/post/admin')),

				array('label'=>'URL管理', 'url'=>array('/url_info/admin')),

				array('label'=>'关键字管理', 'url'=>array('/tags_info/admin')),

				array('label'=>'网址有效性管理', 'url'=>array('/url_scan_info/admin')),


				//array('label'=>'注册', 'url'=>array('/site/contact')),

				array('label'=>'登陆', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),

				array('label'=>'退出 ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest),

	),



也就是YII框架中自带的导航菜单的数组!

也就是views\layouts\main.php中




<div id="mainmenu">

		<?php $this->widget('zii.widgets.CMenu',array(

			'items'=>Yii::app()->meun,

		)); ?>

	</div><!-- mainmenu -->



问题是我不会定义在CWebApplication中定义meun。

你只能给CWebApplication的可写属性进行配置。如果你希望有menu属性,你需要派生新的application类。

对于你这个问题,其实没必要这么麻烦。你可以考虑把菜单项写在一个单独的php文件里:




return array(

    array('label'=>'类别管理', 'url'=>array('/post/admin')),

    array('label'=>'URL管理', 'url'=>array('/url_info/admin')),

    array('label'=>'关键字管理', 'url'=>array('/tags_info/admin')),

    array('label'=>'网址有效性管理', 'url'=>array('/url_scan_info/admin')),


    //array('label'=>'注册', 'url'=>array('/site/contact')),

    array('label'=>'登陆', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),

    array('label'=>'退出 ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest),

);



require这个文件就得到你想要的了。

谢谢QING.我想过写在一个文件里面!但是以后想在更新的话,改起来麻烦!目的就是结合在一个配置文件里!以后改程序的话只在一个页面中改了!

我建议还是分开文件比较好。你可以把它们都放在config目录下。类似的你可以有params.php, urls.php, menus.php,分别用作不同用途。在main.php里你把它们聚合在一起。