codeigniter4 / codeigniter4/CodeIgniter4
`Model::paginate()` behavior when `$page` exceeds the last page
- Lingua principale
- PHP
- Stelle
- 6k
- Fork
- 2k
- Merge medio
- 1g 11h
- PR unite (30g)
- 73
Descrizione
### 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_
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.