Laravel est un framework de développement PHP populaire qui fournit de nombreuses fonctionnalités modernes et des outils conviviaux pour le développement, permettant aux développeurs de créer des sites Web et des applications plus efficacement. Dans le processus de développement d'applications Web, il est souvent nécessaire d'afficher les résultats des requêtes dans des pages. Cet article explique comment utiliser Laravel pour implémenter la fonction de pagination.
1. Introduction à la pagination
La pagination fait référence à une méthode permettant de diviser une grande quantité de données en plusieurs pages à afficher. Normalement, nous définirons le nombre de données à afficher sur chaque page si la quantité de données dépasse ce nombre. valeur, la page se tournera automatiquement. Cette approche peut réduire considérablement le temps de chargement des pages et l'utilisation de la bande passante, permettant ainsi aux utilisateurs de visualiser et de parcourir plus facilement les données.
2. Opération de pagination Laravel
Laravel fournit la classe Paginator pour implémenter la fonction de pagination. Nous pouvons obtenir l'instance de pagination en passant l'objet résultat de la requête à la méthode make de Paginator et en spécifiant la quantité de données à afficher sur chaque page. Appelez la méthode render sur l'instance et Laravel peut générer automatiquement des liens de pagination.
Jetons un coup d'œil à l'implémentation spécifique du code.
Exécutez la commande suivante pour installer Laravel :
composer create-project --prefer-dist laravel/laravel blog
Créez des articles de table de base de données et insérez des exemples de données :
CREATE TABLE `articles` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `body` text COLLATE utf8mb4_unicode_ci NOT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `articles` (`title`, `body`, `created_at`, `updated_at`) VALUES ('Article 1', 'This is article 1 content', '2021-01-01 12:00:00', '2021-01-01 12:00:00'); INSERT INTO `articles` (`title`, `body`, `created_at`, `updated_at`) VALUES ('Article 2', 'This is article 2 content', '2021-01-02 12:00:00', '2021-01-02 12:00:00'); INSERT INTO `articles` (`title`, `body`, `created_at`, `updated_at`) VALUES ('Article 3', 'This is article 3 content', '2021-01-03 12:00:00', '2021-01-03 12:00:00'); INSERT INTO `articles` (`title`, `body`, `created_at`, `updated_at`) VALUES ('Article 4', 'This is article 4 content', '2021-01-04 12:00:00', '2021-01-04 12:00:00');
dans l'application /Models Créez le fichier ArticlesController.php dans le répertoire app/Http/Controllers et ajoutez le code suivant :
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Article extends Model { use HasFactory; protected $fillable = ['title', 'body']; public function getDateAttribute() { return $this->created_at->format('Y-m-d'); } }
Créez le répertoire articles dans le répertoire resources/views, créez le index.blade.php fichier dans ce répertoire, et ajoutez le code suivant :
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Article; class ArticlesController extends Controller { public function index(Request $request) { $articles = Article::paginate(2); return view('articles.index', compact('articles')); } }
Tout d'abord, nous affichons chaque article dans une boucle foreach.
Utilisez les propriétés $article->title et $article->body pour obtenir le titre et le corps de l'article à partir du modèle Article.
@extends('layouts.app') @section('content') <div class="container"> <div class="row"> <div class="col-md-8"> @foreach($articles as $article) <div class="card mb-3"> <div class="card-header"> {{ $article->title }} </div> <div class="card-body"> <p class="card-text">{{ $article->body }}</p> </div> <div class="card-footer text-right"> <small class="text-muted">{{ $article->date }}</small> </div> </div> @endforeach {{ $articles->links() }} </div> </div> </div> @endsection
.card { margin-bottom: 20px; } .pagination { margin-top: 20px; }
Ajout du style CSS Bootstrap4 à app.blade.php.
Nous avons également introduit les fichiers JS de Bootstrap 4, mais nous n'avons pas besoin de les introduire manuellement car Laravel est livré avec l'outil d'empaquetage Webpack, qui peut automatiquement empaqueter les fichiers JS requis dans le fichier public/js/app.js.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!