Stiflerus
@Stiflerus
Саморазвитие мое все.

Как сделать категории с подкатегориями в Codeigniter?

Ради учебы изучаю фреймворк Codeigniter. И возникла проблемка. Никак не придумаю, как вывести категории с подкатегориями.
Возможно кто-то такое уже делал, и написал статью на эту тему, или какой-то видео урок?
  • Вопрос задан
  • 3125 просмотров
Решения вопроса 1
Stiflerus
@Stiflerus Автор вопроса
Саморазвитие мое все.
Все сделал:
Таблица "blog_categories" структура:
blog_categories_id
blog_categories_name
blog_parent_id
blog_categories_discription


Модель: pages_model

function get_cat() {
        $query = $this->db->get('<i>blog_categories</i>'); // моя таблица
    
        foreach($query->result_array() as $row ){
            if(!$row['<i>blog_parent_id</i>']){ // если нет поля blog_parent_id, то есть подкатегории
                $data[$row['<i>blog_categories_id</i>']][] = $row['<i>blog_categories_name</i>']; // выводим только назву категории
            }else {
                $data[$row['<i>blog_parent_id</i>']]['sub'][$row['<i>blog_categories_id</i>']] = $row['blog_categories_name']; // если есть подкатегории виводим их как асоциативный масив, насколько я понял
            }
        }
        return $data;  
    }


Использую библиотеку для вывода сайта и туда передал массив $data:
$CI->load->view('inc/blog_right',$data);
Но можно и в конроллере передать:
$this>load->view('inc/blog_right',$data);

Передал в контроллер:
$data['blog_categories'] = $this->pages_model->get_cat();


И в виде blog_right (в моем случае) вивести:
<?php foreach($blog_categories as $key => $item): ?>
	<?php if(count($item) > 1): // якщо це під категорія ?>
		<li><a href="javascript:;"><?=$item[0]?></a>
			<ul class="acc-menu no-circled">
				<li><a href="<i>Нужно поставить ссылки</i>/<?=$key?>">Всі статті</a></li>
					<?php foreach($item['sub'] as $key => $sub): ?>
					<li><a  href="<i>Нужно поставить ссылки</i>/<?=$key?>"><?=$sub?></a></li>
					<?php endforeach; ?>
				</ul></li>
			<?php elseif($item[0]): // якщо це самостійна категорія ?>
		<li><a href="<i>Нужно поставить ссылки</i>/<?=$key?>"><?=$item[0]?></a></li>
	<?php endif; ?>
<?php endforeach; ?>


Можете проверить как должен выглядеть массив:
<?php print_r($blog_categories);?>
   Array
(
    [1] => Array
        (
            [0] => Програмування
            [sub] => Array
                (
                    [3] => Веб-розробка
                    [4] => вап в пва
                )
        )
    [2] => Array
        (
            [0] => Веб-розробка
        )
)


Чесно признаю взял решение с курса команды WebForMySelf. Чтобы не было рекламы, скажу только что курс о магазине.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы