布局中的 CakePHP 动态菜单内容
Posted
技术标签:
【中文标题】布局中的 CakePHP 动态菜单内容【英文标题】:CakePHP dynamic menu content in layout 【发布时间】:2014-03-24 01:43:16 【问题描述】:我要做的是在我的 Cakephp 布局 (default.ctp) 中放置两个动态导航菜单。主菜单应该有多个级别(具有下拉功能)。二级菜单是在左侧边栏中显示主菜单下拉内容的菜单。
我已经阅读了 CakePHP 文档,但我对如何在布局中适应这些菜单感到困惑。我知道您在视图层中有 4 个不同的部分(如 http://book.cakephp.org/2.0/en/views.html 中所述):
观看次数 元素 布局 帮手但是以我现在所掌握的知识,我认为这些部分都不能满足我的需求。导航菜单是您仅在布局中加载 ONES 的部分,因此它不是元素或助手。那么最好的做法是什么...
...在哪里创建菜单树? ...在哪里/如何在布局文件中回显它?有人可以解决我的问题吗?提前致谢! ;)
【问题讨论】:
【参考方案1】:您可以在元素文件夹中创建菜单树 比如……
element/top_menu.ctp
元素/side_menu.ctp
现在您可以根据动态条件将这些菜单包含在布局中
例如#
if(#user is admin)
echo $this->Element('top_menu');
else if(# user is registered)
echo $this->Element('side_menu');
else
echo $this->Element('top_menu');
echo $this->Element('side_menu');
在这里输入您的条件..您可以使用 Elemnts 文件夹中的菜单作为您的要求......
【讨论】:
好的,很清楚!但是如何在 top_menu.ctp 中动态构建菜单呢?我想从数据库中取出我的数据,所以我想我不应该在那个 .ctp 文件中连接我的数据库?如果我这样做了,那么正确的 MVC 工作方式就完全搞砸了…… 在控制器的操作方法中从数据库中检索您的菜单值并设置值 $this->set('menu',$menu_names);并通过使用 foreach 循环检索值在 top_menu.ctp 中显示这些值..以上是关于布局中的 CakePHP 动态菜单内容的主要内容,如果未能解决你的问题,请参考以下文章