Yii 动态添加菜单项时CMenu URL属性的用法?

Yii 动态添加菜单项时CMenu URL属性的用法?,yii,cmenu,Yii,Cmenu,不确定这是否是最佳做法,但我们希望在布局视图上有一个菜单,并作为URL参数传递一个值,该值应检索一些数据 菜单将类似于: <ul id="menu"> <li>districtA</li> <li>districtB</li> <li>districtC</li> </ul> 'url'=>array('/event/getEventsByDistrict', 'district'=>i

不确定这是否是最佳做法,但我们希望在布局视图上有一个菜单,并作为URL参数传递一个值,该值应检索一些数据

菜单将类似于:

<ul id="menu">
<li>districtA</li>
<li>districtB</li>
<li>districtC</li>
</ul>
'url'=>array('/event/getEventsByDistrict', 'district'=>id),
有更好的方法吗

我的意思是,通过这样做,我相信,如果一个新的地区被添加到数据库中,那么我们应该手工编辑菜单,将相应的id放在那里?是否有一种方法可以从数据库中检索该id,以便每次呈现菜单时,我们都可以确保该新项将链接到该新项目(刚刚添加的地区?)的相应id

这对你有意义吗

似乎唯一的方法就是创建一个包装类或其他什么

也许地区不是一个很好的例子,它们不会经常变化,但让我们想象一些经常变化的事情


请告知

如果我正确理解了您的问题,假设您的
地区
模型具有
名称
属性,则这应该有效

$districts = DistrictModel::model()->findAll();
$menu = array();
foreach($districts as $district) $menu[] = array('label'=>$district->name, 'url'=>array('event/getEventsByDistrict', 'district'=>$district->id));

$this->widget('zii.widgets.CMenu', array(
    'items'=>$menu
));

你想要一个链接到最新地区的菜单项,还是一个链接到每个地区的菜单?@Örs我已经更新了我的问题。每个菜单项应检索给定地区的所有事件。这是一个控制者的决定,它可能是其他的。或者,谢谢,这似乎是一个很好的方式。还没有测试,但我会试试。