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:
Copy 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:
Copy $ 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():
Copy $ 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:
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: