php - 如何在codeigniter中创建动态菜单
问题描述
我在codeigniter中列出类别时遇到问题
我的表是:
id name sub_category category_name desc status
3 submenu1 menu1 category1 desc1 1
4 submenu1 menu2 category1 desc1 1
5 submenu1 menu1 category2 desc1 1
6 submenu1 menu2 category2 desc1 1
我的预期输出是:
category1
submenu1
menu1
menu2
category2
submenu1
menu1
menu2
像这种结构的列表
我的控制器:
public function index(){
// $this->load->view('view_admin/home');
$data['menu']=$this->Admin_model->menu();
$data['menu1']=$this->Admin_model->menu1();
$data['menu2']=$this->Admin_model->menu2();
echo '<pre>';
print_r($data['menu1']);
echo '</pre>';
$this->load->view('view_admin/banner',$data);
}
我的模型:
function menu(){
$this->db->select('*');
$this->db->from('productpage');
$this->db->where('status',1);
$this->db->group_by('category_name');
$query = $this->db->get();
$result = $query->result();
return $result;
}
function menu1(){
$this->db->select('*,group(');
$this->db->from('productpage');
$this->db->where('status',1);
$this->db->group_by('name');
$query = $this->db->get();
$result = $query->result();
return $result;
}
function menu2(){
$this->db->select('*');
$this->db->from('productpage');
$this->db->where('status',1);
$this->db->group_by('sub_category');
$query = $this->db->get();
$result = $query->result();
return $result;
}
我收到了这样的错误遇到了 PHP 错误 严重性:注意
消息:试图获取非对象的属性
文件名:view_admin/banner.php
行号:58
如何为每个循环创建一个视图以获得预期的输出
感谢您的宝贵回复
解决方案
您只需要一个查询/模型函数并在视图之前重新排列您的数组:
模型:
function menu(){
return $this->db->get_where('productpage', array('status' => 1))->result_array();
}
控制器:
$array = $this->Admin_model->menu();
$menu = array();
foreach ($array as $item) {
// rearrange things
$menu[$item['category_name']][$item['name']][] = $item['sub_category'];
}
$this->load->view('view_admin/banner', array('menu_data' => $menu));
看法:
foreach ($menu_data as $cat_name => $sub_menu) {
echo $cat_name . '<br>';
foreach ($sub_menu as $sub_menu_name => $menus) {
echo $sub_menu_name . '<br>';
foreach ($menus as $menu) {
echo $menu . '<br>';
}
}
}
生成:
category1
submenu1
menu1
menu2
category2
submenu1
menu1
menu2
推荐阅读
- microcontroller - ESP8266,连接 AP 时,请求特定 IP 或可发现主机名?
- python - 遍历行如何提高速度
- excel - Excel VBA - 打开所有 .csv 文件并使用单元格值另存为 .xlsx
- flutter - 无论设备方向如何,如何在颤动中获取屏幕尺寸
- fortran - 模块过程的名称与包含范围单元中的名称冲突
- c++ - 将`std::string`临时传递给`std::string_view`参数是否安全?
- python - python从文本文件中获取字符串并从另一个文本文件中获取serach
- java - 二叉搜索树实现问题
- python - Django .defer() 用于从查询集中删除值
- android - Firestore user.getUsername() 返回空值