Laravel ist ein beliebtes PHP-Entwicklungsframework, das viele moderne Funktionen und entwicklungsfreundliche Tools bietet und es Entwicklern ermöglicht, Websites und Anwendungen effizienter zu erstellen. Bei der Entwicklung von Webanwendungen ist es häufig erforderlich, Abfrageergebnisse in Seiten anzuzeigen. In diesem Artikel wird erläutert, wie Sie die Paging-Funktion mit Laravel implementieren.
1. Einführung in das Paging
Paging bezeichnet eine Methode zur Aufteilung einer großen Datenmenge in mehrere Seiten zur Anzeige. Normalerweise legen wir fest, wie viele Daten auf jeder Seite angezeigt werden sollen Geben Sie den Wert ein, wird die Seite automatisch umgeblättert. Dieser Ansatz kann die Ladezeit der Seite und die Bandbreitennutzung erheblich reduzieren und den Benutzern das Anzeigen und Navigieren in Daten erleichtern.
2. Laravel-Paging-Operation
Laravel stellt die Paginator-Klasse zur Implementierung der Paging-Funktion bereit. Wir können die Paging-Instanz erhalten, indem wir das Abfrageergebnisobjekt an die make-Methode von Paginator übergeben und die Datenmenge angeben, die auf jeder Seite angezeigt werden soll. Rufen Sie die Render-Methode für die Instanz auf, und Laravel kann automatisch Paginierungslinks generieren.
Werfen wir einen Blick auf die spezifische Code-Implementierung.
Führen Sie den folgenden Befehl aus, um Laravel zu installieren:
composer create-project --prefer-dist laravel/laravel blog
Datenbanktabellenartikel erstellen und einige Beispieldaten einfügen:
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');
in der App /Models Erstellen Sie die Datei „ArticlesController.php“ im Verzeichnis „app/Http/Controllers“ und fügen Sie den folgenden Code hinzu:
<?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'); } }
Erstellen Sie das Verzeichnis „Artikel“ im Verzeichnis „resources/views“ und erstellen Sie die Datei „index.blade.php“. Datei in diesem Verzeichnis und fügen Sie den folgenden Code hinzu:
<?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')); } }
Zuerst zeigen wir jeden Artikel in einer foreach-Schleife an.
Verwenden Sie die Eigenschaften $article->title und $article->body, um den Artikeltitel und den Textkörper aus dem Article-Modell abzurufen.
@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; }
Bootstrap4-CSS-Stil zu app.blade.php hinzugefügt.
Wir haben auch die JS-Dateien von Bootstrap 4 eingeführt, aber wir müssen sie nicht manuell einführen, da Laravel mit dem Webpack-Paketierungstool geliefert wird, das die erforderlichen JS-Dateien automatisch in die Datei public/js/app.js packen kann.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Paging-Funktion mit Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!