Как подсчитать количество постов в разных категориях?
Доброе утро
Нужно в списке категорий, возле каждой категории, указать количество привязанных к ней постов. Мне кажется, что я нашёл решение, но не могу понять, как передать 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…
Источник: Stack Overflow на русском