как создать динамическое меню в codeigniter - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть проблема в категории листинга в 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

список таких структур

Mycontroller:

<code>    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 '
'; $ This-> load-> Вид ( 'view_admin / баннер', $ данных); }

MyModel:

 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 ​​

как создать для каждого видимого цикла, чтобы получить ожидаемый результат

Спасибо за ваш ценный ответ

1 Ответ

0 голосов
/ 27 апреля 2018

Вам просто нужна одна функция запроса / модели и немного изменить порядок массива перед просмотром:

Модель:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...