Pagination
A paginação de uma listagem é um recurso importante para melhorar a navegação no sistema, com uso da classe Pagination
o Luna consegue realizar paginação de arrays
de forma simples e gerar templates para aplicação na view:
namespace App\Controllers\Pages;
use \App\Utils\Pagination;
class Product {
public static function getProducts($req, $res) {
// ...
$pagination = new Pagination($products, $page, $limit);
$products = $pagination->get();
}
}
A função get()
retornarÔ um a lista jÔ paginada, quantidade de pÔginas e outros dados importantes para a paginação.
Template de paginação
O template para ser adicionado na view pode ser obtido tambƩm na classe:
$paginationRender = $pagination->render($req);
O retorno conterĆ” uma lista (<li>
) para que seja adicionada na view e estilizada conforme necessƔrio.
Os componentes utilizados na criação da listagem encontram-se em /resources/components/pagination
e podem ser personalizados ou alterados na chamada do render()
:
$paginationRender = $pagination->render($req, [
'last' => 'last.html'
// ...
]);
Caso não envie os componentes os componentes padrão serão utilizados.
Para modificar a quantidade de itens que aparecem ao lado da pƔgina atual use:
$paginationRender = $pagination->render($req, [], 3);
Resultado: [1][...][4][5][6][7][8][9][10][...][99]
Inserindo na renderização
Assim como um componente a paginação deve ser adicionada na renderização da view:
$content = View::render('pages/products', ['pagination' => $paginationRender]);
// View: <ul>{{pagination}}</ul>
Last updated