gpt4 book ai didi

php - CodeIgniter 中带有单表的多级菜单

转载 作者:行者123 更新时间:2023-11-29 23:16:05 24 4
gpt4 key购买 nike

我是 CodeIgniter 的新手。我正在尝试创建一个多级菜单。下面是我的大型菜单结构。

________________________________________________________________________
| main menu | main menu | main menu
————————————————————————————————————————————————————————————————————————
| sub menu | sub menu | sub menu

| sub sub menu | sub sub menu | sub sub menu
| sub sub menu | sub sub menu | sub sub menu
| sub sub menu | sub sub menu | sub sub menu
| sub sub menu | sub sub menu | sub sub menu
————————————————————————————————————————————————————————————————————————

我的 table

________________________________________________________________________
| menu_id | menu_parent | menu_name
————————————————————————————————————————————————————————————————————————
| 1 | 0 | Root
| 2 | 1 | Sub category of root
| 3 | 0 | category 1
| 4 | 3 | sub category of category 1
| 5 | 4 | sub category of first sub category of category 1
————————————————————————————————————————————————————————————————————————

我的模型

  protected function getCategoryTree($level = 0, $prefix = '') {
$rows = $this->db
->select('menu_id,menu_parent,menu_name')
->where('menu_parent', $level)
->where('menu_status', '0')
->order_by('menu_id','asc')
->get('menu')
->result();
$category = '';
if (count($rows) > 0) {
foreach ($rows as $row) {
$category .= $row->menu_name . "\n";
// Append subcategories
$category .= $this->getCategoryTree($row->menu_id);
}
}
return $category;
}

public function printCategoryTree() {
$getCategoryTree = $this->getCategoryTree();
return $getCategoryTree;
}

我的问题是,我希望我的主菜单、子菜单和子子菜单以正确的 css 显示。但根据上面的代码,我无法管理子菜单和子子菜单。

所以我需要独立获取子菜单和子子菜单的所有值。请帮忙。提前致谢。

最佳答案

我知道很多人都这样做,但我相信菜单表在大多数情况下并不是最佳选择。看起来你只是想让事情复杂化。我不建议将方钉放入圆孔中。

我的意思是,当你使用表格时,你将不得不失去自然的层次结构,你必须想出调整、黑客和解决方法来模拟它,然后循环创建实际的层次结构,这太工作量很大。

你最好使用 MongoDB,或者如果 MongoDB 太过分了,那么只需使用一个简单的 json 文件来保存整个菜单的深层嵌套家谱,如父菜单、子菜单、孙子菜单、叔叔菜单、阿姨菜单、侄子菜单、大菜单父菜单等(哈哈哈哈哈)一切都是这样。

关于php - CodeIgniter 中带有单表的多级菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27796293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com