布局中的 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 动态菜单内容的主要内容,如果未能解决你的问题,请参考以下文章

[Layui]后台大布局tab风格动态菜单-无限层

如何通过导航菜单 ajax-refresh 动态包含内容? (JSF SPA)

CakePHP 的动态标题行

antd pro 动态菜单与动态路由

动态下拉菜单在 div 中显示动态内容

vue项目实现动态路由和动态菜单搭建插件式开发框架免费源码