我有一个这样的主菜单:
$main= array(
array('label'=>'Main Menu'),
array('label'=>'Posts', 'icon'=>'list', 'url'=>array('post/index') ),
'--',
array('label'=>'Comments', 'icon'=>'comment', 'url'=>array('comment/index')),
);
在帖子控制器中,我在帖子中构建一个子菜单,例如
$submenu= array(
array('label'=>'All Posts', 'icon'=>'list-alt', 'url'=>array("post/index")),
array('label'=>'Create Post', 'icon'=>'plus', 'url'=>array("post/create")),
);
我具有合并两者的功能
$main 数组中的 url'url'=>array('post/index')
例如
list($controller,$action)=explode('/',current($link['url']));
if($controller==$this->owner->getId()){
$append_to=$menu_id;
break;
}
输出:
$main= array(
array('label'=>'Main Menu'),
array('label'=>'Posts', 'icon'=>'list', 'url'=>array('post/index'),
'items'=>array(
array('label'=>'All Posts', 'icon'=>'list-alt', 'url'=>array("post/index")),
array('label'=>'Create Post', 'icon'=>'plus', 'url'=>array("post/create")),
);
),
'--',
array('label'=>'Comments', 'icon'=>'comment', 'url'=>array('comment/index')),
);
所以想法是在运行时在主菜单项之外插入子菜单。$menu 是全局的,而 $submenu 是在控制器中定义的。
我不确定这是否是最好的方法。
有没有更好的方法或者 Yii 提供了一些内置类来有条件地进行这种合并数组?
我检查了 CMap 类,但没有提供任何此类功能。
你有什么建议来改进这段代码?
问候