gustavosantos / base-pagination-filters
This package is abandoned and no longer maintained.
No replacement package was suggested.
BasePaginationFilters is a simple implementation of paging and filters to connect with service and repository.
v1.0.4
2020-01-27 13:21 UTC
Requires
- php: >=7.3.6
- psr/container: ^1.0
- psr/http-message: ^1.0
README
Instalação
Execute o comando:
composer require gustavosantos/base-pagination-filters
Implementação
-
Filtros
Para utilizar os filtros, basta informar no array filters as colunas presentes/mapeadas em sua entidade.
Na url passe o querystring:
?filters[]=id:123&filters[]=name:Gustavo
-
Paginação
Para utilizar a paginação, basta informar limit e offset
Na url passe o querystring:
?limit=100&offset=0
Posteriormente conecte ao seu service ou repository:
/** * @param BasePaginationInterface $pagination * @return array * @throws ProductDatabaseException */ public function findAllProducts(BasePaginationInterface $pagination): array { try { return $this->findBy( $pagination->getFilters(), $pagination->getOrderBy(), $pagination->getLimit(), $pagination->getOffSet()); } catch (ORMException $e) { throw new ProductDatabaseException(StatusHttp::INTERNAL_SERVER_ERROR, ErrorMessage::ERROR_QUERY_ALL_RECORD, $e->getMessage()); } catch (Exception $e) { throw new ProductDatabaseException(StatusHttp::INTERNAL_SERVER_ERROR, ErrorMessage::ERROR_QUERY_ALL_RECORD, $e->getMessage()); } }
Chamada do método passando o parâmetro:
$this->productRepository->findAllProducts($this->basePagination->addPagination($queryParams));