meta data for this page
  •  

Laravel

Pagination manuelle

Dans certains cas, on peut configurer la pagination quand on a les résultats d'un requêtes dans un tableau.

Ici on a un tableau $images qui contient plusieurs images mais on souhaite les afficher 6 par 6.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use Illuminate\Pagination\LengthAwarePaginator as Paginator;
...
 
$pageStart = request()->get('page', 1); // récupère le numéro de page dans l'url
$perPage = 6; // Défini le nombre d'image par page
 
// Défini le décalage, si on est sur la 1ere page, $offset = 0
//si on est sur la 2eme page, $offset = 6
$offset = ($pageStart * $perPage) - $perPage;
 
// Instancie la class Paginator
$images = new Paginator(
    array_slice($images->all(), $offset$perPage, true),
    $images->count(),
    $perPage,
    null,
    [
        'path'  => $request->url(),
        'query' => $request->query(),
    ]
);
 
// Ajoute à l'objet $images le contenu de la recherche
// si on est sur une page de résultats de recherche
$images->appends(['search' => $request->post('search')]);