- Aplikace
- Databáze
- Šablony
- Formuláře
- Knihovny
- Návody
Stránkování
Nová databázová vrstva umí velmi pěkné features. Jednou z nich je stránkování. Nejdříve si připravíme klasický dotaz do db:
$query = Db::prepare('select * from [posts] where [category_id] = %i', 5);
Nyní zbývá už jen na výsledek použít metodu
setPagination(), která má tři parametry:
$page– číslo (pořadí) stránky, kterou chcete zobrazit; počítáno od jedné$limit– nepovinný; počet záznamů na stránku$count– nepovinný; celkový počet záznamů
Háefko framework se vždy snaží upravit původní SQL dotaz tak, aby dokázalo zjistit celkový počet položek. Bohužel, někdy je SQL dotaz natolik komplikovaný, že musíte pomocí toho parametru předat sami počet položek.
$query = Db::prepare('select * from [posts] where [category_id] = %i', 5);
$query->setPagination($page);
# a spustime
$query->execute();
Nyní můžeme náš query dotaz jednoduše projít:
foreach ($query as $row) {
# ...
}
Stránkovač
Do výsledného objektu nám přibyla také jedna nová proměnná – paginator. Na ní můžeme volat metody, pomocí kterých zjistíme, zda existuje předchozí stránka, či následující, kolik je stránek celkem, a na které stránce se nacházíme.
$query->paginator->page;
$query->paginator->pages;
$qeury->paginator->hasNext();
$qeury->paginator->hasPrev();
$query->paginator->isFirst();
$query->paginator->isLast();
Metody hasPrev() a hasNext() vrací logickou
hodnotu – true, pokud existuje předchozí/následující
stránky. Dále jsou zde metody isFirst() a isLast(),
pomocí nichž lze zjistit, zda je akutální stránka první, respektive
poslední.
Automatický render
Pokud chcete vykreslit pěkný stránkovač, můžete k tomu použít HTML helper a jeho metodu paginator.
echo $html->paginator($query->paginator);
