Paginator – nejde pouze první strana
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Draffix
- Člen | 146
Zdravím, patlám se teď se stránkováním a narazil jsem na chybu, se kterou nevím pohnout. Všechny stránky mi po rozdělení fungují, pouze na první stránce se vůbec žádné produkty nezobrazí. Když jsem to rozdělil např. po dvou, tak opět, další stránky fungují, jen první strana s prvními (resp. podle řazení posledními) nic nezobrazí. Může mi prosím někdo poradit kde mám chybu?
Presenter:
protected function createComponentPaginator() {
$visualPaginator = new VisualPaginator();
return $visualPaginator;
}
public function renderDefault() {
$model = $this->products;
$paginator = $this['paginator']->getPaginator();
$paginator->itemsPerPage = 3;
$paginator->setBase(1);
$paginator->itemCount = $model->countNews()->pocet;
$mainProducts = $model->fetchImagesAndNews($paginator->offset, $paginator->itemsPerPage);
$this->template->mainProducts = $mainProducts;
if ($this->isAjax()) {
$this->invalidateControl('list');
}
}
Model:
public function fetchImagesAndNews($limit, $offset) {
return $this->connection->query(
'SELECT product.prod_id, product.prod_name, product.prod_price, product.prod_describe,
image.image_id, image.image_path, image.product_prod_id
FROM product, image
WHERE product.prod_id = image.product_prod_id
AND product.prod_isnew = 1
ORDER BY product.prod_id DESC LIMIT ? OFFSET ?', $limit, $offset);
}
public function countNews() {
return $this->connection->query(
'SELECT COUNT(*) AS pocet FROM product, image
WHERE product.prod_id = image.product_prod_id
AND product.prod_isnew = 1'
)->fetch();
}