Vous avez du mal à gérer l’affichage des articles sur votre site Laravel?
Une mauvaise gestion peut entraîner une navigation difficile, frustrant vos utilisateurs.
Découvrez comment paginer efficacement vos articles avec Laravel et Bootstrap 5 dans cet article.
Initiez-vous à Laravel et réalisez votre première application en toute confiance.
Dans cet axe, nous allons aborder comment paginer les résultats d’une requête et personnaliser l’affichage de la pagination en utilisant Bootstrap 5.
Configurer résultats page Laravel
Pour paginer les résultats, vous devez définir un nombre de résultats par page directement dans le modèle Article. Cette configuration vous permet de contrôler combien d’articles seront affichés sur chaque page.
protected $perPage =5;
Cette propriété permet de spécifier que, par défaut, chaque page affichera 5 articles.
Utiliser paginate() dans contrôleur
Ensuite, vous devez modifier la méthode index() dans votre contrôleur ArticleController pour utiliser la pagination.
Code à insérer dans ArticleController :
public function index() {
// Récupérer les articles en les triant par ordre décroissant selon l'ID et en paginant
$articles = Article::orderByDesc('id')->paginate($this->perPage);
// Préparer les données à envoyer à la vue
$data = [
'title' => 'Les articles du blog - ' . config('app.name'),
'description' => 'Retrouvez tous les articles de - ' . config('app.name'),
'articles' => $articles,
];
// Retourner la vue avec les données
return view('article.index', $data);
}
- orderByDesc(‘id’) :Trie les articles du plus récent au plus ancien.
- paginate($this->perPage) :Paginer les articles selon la valeur de $perPage définie dans le modèle Article.
- $data :Un tableau associatif contenant le titre de la page, la description et la liste des articles paginés.
Afficher articles paginés Laravel
Une fois que vous avez récupéré les articles paginés, vous devez les afficher dans la vue index.blade.php. Ajoutez la pagination sous la liste des articles.
Code à ajouter dans index.blade.php :
{{ $articles->links() }}
- La directive @foreach parcourt chaque article et génère une carte pour l’afficher.
- {{ Str ::words($article->content, 5) }} : Affiche uniquement les cinq premiers mots du contenu de l’article.
- {{ $articles->links() }} :Génère automatiquement les liens de pagination pour naviguer entre les pages d’articles.
Personnaliser pagination Bootstrap 5
Laravel propose des outils pour personnaliser facilement la pagination. Pour utiliser Bootstrap 5 et styliser la pagination, vous devez configurer votre application.
Code à ajouter dans AppServiceProvider :
public function boot(): void
{
// Définit la longueur par défaut des colonnes string à 191 caractères
Schema::defaultStringLength(191);
Paginator::useBootstrapFive();
}
La méthode Paginator::useBootstrapFive() permet de rendre les composants de pagination compatibles avec le style Bootstrap 5, assurant une apparence cohérente avec le reste de votre interface.
Résultat affiché
Lorsque tout est bien configuré, la page affichera :
- Une liste de 5 articles par page avec leurs titres, contenus abrégés, auteurs et dates de publication.
- Un composant de pagination stylisé en bas de la liste pour naviguer entre les différentes pages.
Exemple de rendu visuel de la pagination :
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment paginer les résultats d'une requête dans Laravel?
Comment personnaliser la pagination avec Bootstrap 5 dans Laravel?
Comment définir le nombre de résultats par page dans Laravel?
Comment afficher les liens de pagination dans une vue Laravel?
Quels sont les avantages de la pagination avec Bootstrap 5?
Conclusion
En maîtrisant la pagination avec Laravel et Bootstrap 5, vous améliorez l’expérience utilisateur sur votre site. Quelles autres fonctionnalités de Laravel souhaitez-vous explorer?