Этот вопрос закрыт для ответов, так как повторяет вопрос Как вывести подкатегории категорий?
@it_pear_yurec

Как вывести подкатегории?

Имеется модель
public static function getCategoriesList(){
		$db = Db::getConnection();
		$categoryList = array();

		$result = $db->query('SELECT id, name, sort_order, status, parent_id FROM category '. 'ORDER BY sort_order ASC');

		$i = 0;
		while ($row = $result->fetch()) {
			$categoryList[$i]['id'] = $row['id'];
			$categoryList[$i]['name'] = $row['name'];
			$categoryList[$i]['sort_order'] = $row['sort_order'];
			$categoryList[$i]['status'] = $row['status'];
      $categoryList[$i]['parent_id'] = $row['parent_id'];
			$i++;
		}

		return $categoryList;
	}

  public static function getSubCategoriesList($id){
    $db = Db::getConnection();
    $subCategoryList = array();

    $result = $db->query('SELECT * FROM category WHERE `parent_id` = ' .$id);

    $i = 0;
    while ($row = $result->fetch()) {
      $subCategoryList[$i]['id'] = $row['id'];
      $subCategoryList[$i]['name'] = $row['name'];
      $i++;
    }

    return $subCategoryList;
  }

Имеется контроллер
class SiteController
{

  public function actionIndex()
  {
    $categories = array();
    $categories = Category::getCategoriesList();

 		$subCategories = array();
    $subCategories = Category::getSubCategoriesList(9);

    $latestProducts = array();
    $latestProducts = Product::getLatestProducts(8);
    
    require_once(ROOT . '/views/site/index.php');

    return true;
  }
}

Имеется вывод во view
<?php foreach ($categories as $categoryItem): ?>
	<li>
		<p class="aside__title"><?php echo $categoryItem['name'];?></p>
		<div class="aside__plus">
			<span></span><span></span>
		</div>
		<ul>
			<?php foreach ($subCategories as $categorySubItem): ?>
				<li>
					<a href="/category/<?php echo $categorySubItem['id'];?>">
						<?php echo $categorySubItem['name'];?>
					</a>
				</li>
			<?php endforeach; ?>
		</ul>
	</li>
<?php endforeach; ?>


Если передавать в контроллер - 9 то есть все категории с parent_id 9 $subCategories = Category::getSubCategoriesList(9); ТО во view выводятся эти записи, но как сделать так, чтобы они выводились в цикле и к каждой категории по id выдавались свои подкатегории parent_id ?
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
Eridani
@Eridani
Мимо проходил
Почему бы в модели не собрать массив категорий где в ключ children будет включен массив из подкатегорий? Т.е. рекурсивно пройтись по всем категориям и вложить дочерние в родителя?
Два форича - 1) по верхним категорям 2)второй вложенной по чилдренам?
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы