Всем привет. Подскажите, что делаю не правильно.
Делаю вывод всех товаров на одной странице (прайс-лист)
Должно получиться так:
Категория товара:
- все товары из категории
Категория товара 2:
- все товары из категории 2
Категория товара 3:
- все товары из категории 3
И так со всеми товарами магазина.
Но получается следующая картина, сначала выводятся все категории магазина, затем все товары магазина, цикл внутри цикла не работает правильно.
В контроллере:
$data['categories'] = array();
$allcategories = $this->model_catalog_category->getCategories(0);
foreach ($allcategories as $category) {
$data['categories'][] = array(
'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts(0) . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $category['category_id'] . $url)
);
}
$category_allproducts = [];
$allproducts = $this->model_catalog_product->getProducts($category['category_id']);
//$allcategories = $this->model_catalog_category->getCategories($category['category_id']);
if(!empty($allproducts)){
foreach ($allproducts as $product) { //3
$category_allproducts[] = array (
'name' => $product['name'],
'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']),
);
}
}
// Level 1
$data['categories'][] = array(
'products' => $category_allproducts,
'name' => $product['name'],
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $category['category_id'] . $url)
);
Представление:
<?php foreach ($categories as $category) { ?>
<h2><?php echo $category['name']; ?></h2>
<div class="row">
<?php foreach ($category['products'] as $product) { ?>
оформление карточки
<?php } ?>
</div>
<?php } ?>
Что делаю не так?