在我的一个项目中,我必须根据menu links
更改content page
。如果我的“内容页面”为page 1
,那么我的菜单链接将为Menu 1, Menu 2, Menu 3,...
,如果我的内容页面为page 2
,则我的菜单链接将为Menu A, Menu B, Menu C,...
。
实施例:
在我的标题中,menu bar
是:
<ul>
<li><?php echo $this->Html->link("Menu 1",array('controller'=>'controllers','action'=>'menu1','full_base'=>true));?></li>
<li><?php echo $this->Html->link("Menu 2",array('controller'=>'controllers','action'=>'menu2','full_base'=>true));?></li>
</ul>
我想要的是,当我在页面“any_page.ctp”时(意思是,当我在一个函数“anyPage”中)时,菜单栏将自动更改为:
<ul>
<li><?php echo $this->Html->link("Menu A",array('controller'=>'controllers','action'=>'menuA','full_base'=>true));?></li>
<li><?php echo $this->Html->link("Menu B",array('controller'=>'controllers','action'=>'menuB','full_base'=>true));?></li>
</ul>
我想根据我的网页更改Menu(s)
。有没有办法在CakePHP
?
如果需要更多解释,请告诉我。
答案 0 :(得分:0)
省略您可能想要使用的所有<li>
和CSS样式,您可以在导航栏中尝试这样的内容。
if ($this->params['action'] == 'page1') {
echo "menu item 1";
echo "menu item 1";
echo "menu item 1";
} elseif ($this->params['action'] == 'page2') {
echo "menu item A";
echo "menu item B";
echo "menu item C";
} else {
echo "something else A";
echo "something else B";
echo "something else C";
}
基本上,如果您想在视图中访问当前操作,可以通过$this->params['action']
获取。要查看其他可用变量,请尝试使用debug($this->params)
。
答案 1 :(得分:0)
您可以为菜单创建元素。 例如,您要为第1页创建菜单。
<ul>
<li><?php echo $this->Html->link("Menu",array('controller'=>'controllers','action'=>'menu1','full_base'=>true));?></li>
<li><?php echo $this->Html->link("Menu 2",array('controller'=>'controllers','action'=>'menu2','full_base'=>true));?></li>
</ul>
将其保存到路径中的文件中 - &gt; app / View / Elements / page1_menu.ctp(文件名只是一个例子)
然后在视图中显示菜单。 (例如,您的网址是/ users / page1)
if($this->params["controller"]=="users" && $this->params["action"]=="page1" ){
echo $this->element('page1_menu');
}