我是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
————————————————————————————————————————————————————————————————————————
我的表
________________________________________________________________________
| 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。但根据上面的代码,我无法管理子菜单&子子菜单。
所以我需要获得子菜单和放大器的所有值。子子菜单独立。请帮忙。提前谢谢。
答案 0 :(得分:0)
我知道有很多人这样做,但我相信Table for menu并不是大多数时候最好的选择。看起来你只是想让它复杂化。我不建议将方形钉挂在圆孔中。
我的意思是当你使用表时,你将不得不松开自然层次结构,你必须提出调整,黑客和解决方法来模拟它然后循环以创建实际的层次结构,这也是很多工作。
你最好使用MongoDB,或者如果MongoDB过度使用,那么只需使用一个简单的jSON文件来保存整个菜单的深层嵌套族树,如父菜单,子菜单,大孩子菜单,叔叔菜单,阿姨菜单,侄子菜单,盛大父母菜单等(hahaha lol)一切都是这样的。