codeigniter4 / codeigniter4/CodeIgniter4

`Model::paginate()` behavior when `$page` exceeds the last page

Abierto
#8,904 24 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
PHP
Estrellas
6k
Forks
2k
Merge medio
1 d 11 h
PR fusionados (30 d)
73

Descripción

### PHP Version

8.3

### CodeIgniter4 Version

4.1.5

### CodeIgniter4 Installation Method

Manual (zip or tar.gz)

### Which operating systems have you tested for this bug?

Linux

### Which server did you use?

apache

### Database

MySQL 5.6

### What happened?

When i paginate the model like this `$UsersMode->orderBy('id_user', 'ASC')->paginate(8, 'group', $page_number);`

returns "`SELECT * FROM users ORDER BY id_user ASC LIMIT 8, 8`" based on offset and per page number

But my total count rows in the table are 24, so when i reach the end `16, 8` it returns me the same query as the last existing page in my database even with `$page_number = 100`

### Steps to Reproduce

```php
public function load_more($page_number = 2)
{
$UsersModel = new UsersModel();

$this->ViewData['Page'] = $page_number;

$this->ViewData['Users'] = $UsersMode->orderBy('id_user', 'ASC')->paginate(8, 'group', $page_number);

echo $UsersModel->db->getLastQuery();
}
```

returns "`SELECT * FROM users ORDER BY id_user ASC LIMIT 8, 8`"

But my total count rows in the table are 24, so when i reach the end `16, 8` `$page_number = 10` and go to a page number more than 3 it returns the same query "`SELECT * FROM users ORDER BY id_user ASC LIMIT 16, 8`"

### Expected Output

Going to a page number more than the total count rows of my table it should return the propper offset even if i have the total rows less than the per page number or less than the total count

`$page_number = 10` it should returns the query "`SELECT * FROM users ORDER BY id_user ASC LIMIT 80, 8`" even if i don't have enough records in my database table

### Anything else?

_No response_

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.