Как подсчитать количество постов в разных категориях?

Рейтинг: 0Ответов: 0Опубликовано: 24.02.2023

Доброе утро

Нужно в списке категорий, возле каждой категории, указать количество привязанных к ней постов. Мне кажется, что я нашёл решение, но не могу понять, как передать id категорий в модель.

Вот контроллер, где $pages — количество постов:

public function categoriesAction()
{
    // $pages = $this->model->pagesCount($this->route['id']);
    $pagination = new Pagination($this->route, $this->model->categoriesCount(), 5);
    $vars = [
        'pagination' => $pagination->get(),
        'count' => $this->model->categoriesCount(),
        'list' => $this->model->categoriesList($this->route),
        'pages' => $this->model->pagesCount($this->route['id']),
    ];
    // $this->view->render('Список категорий', 0, 0, $vars, $pages);
    $this->view->render('Список категорий', 0, 0, $vars);
}

Счётчик:

public function pagesCount($id)
{
    $params = [
        'id' => $id,
    ];
    return $this->db->col('SELECT COUNT(id) FROM pages WHERE category = :id', $params);
}

Вывод в виде:

<?php foreach ($list as $val): ?>
    <li>Категория: <a href="/category/<?= $val['id'] ?>"><?= htmlspecialchars($val['category'], ENT_QUOTES) ?></a> (<?= $pages ?>)</li>
<?php endforeach ?>

При попытке передачи id выдаёт незатейливое предупреждение:

Notice: Undefined index: id in /home…

Ответы

Ответов пока нет.