Heim >PHP-Framework >Laravel >So implementieren Sie die Paging-Funktion mit Laravel

So implementieren Sie die Paging-Funktion mit Laravel

PHPz
PHPzOriginal
2023-04-19 10:09:142852Durchsuche

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.

  1. Laravel installieren

Führen Sie den folgenden Befehl aus, um Laravel zu installieren:

composer create-project --prefer-dist laravel/laravel blog
  1. Mysql-Datenbanktabelle erstellen

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');
  1. Artikelmodell definieren

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 = [&#39;title&#39;, &#39;body&#39;];

    public function getDateAttribute()
    {
        return $this->created_at->format('Y-m-d');
    }
}
  1. Define ArticlesController

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(&#39;articles.index&#39;, compact(&#39;articles&#39;));
        }
    }
  1. Analyse:

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.

    Erhalten Sie das Veröffentlichungsdatum des Artikels im Attribut $article->date.
  • Rufen Sie die Methode $articles->links() auf. Laravel generiert automatisch Paginierungslinks für uns.
  • Definieren Sie den Seitenstil
Erstellen Sie die Datei app.css im Verzeichnis public/css und fügen Sie den folgenden Code hinzu:
    @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
  1. Fügen Sie in der Datei app.blade.php im Verzeichnis resources/views/layouts Folgendes hinzu: Der folgende Code:
  2. .card {
        margin-bottom: 20px;
    }
    .pagination {
        margin-top: 20px;
    }
Analyse:

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.

  • Testen Sie die Paging-Funktion
Besuchen Sie http://127.0.0.1:8000/articles und Sie können sehen, dass unsere Artikelliste angezeigt wurde und wir über Paging-Links zwischen mehreren Seiten wechseln können.
  1. Hier muss beachtet werden, dass beim Aufruf der Paginierungsmethode im Controller der übergebene Parameter 2 angibt, wie viele Daten auf der Seite angezeigt werden sollen. Wenn dieser Wert zu klein eingestellt ist, wird dies der Fall sein viele Paginierungslinks auf der Seite, was zu Verwirrung auf der Seite führt; wenn dieser Wert zu groß eingestellt ist, wird die auf der Seite angezeigte Datenmenge sehr groß sein, wodurch Anfragen für lange Zeit blockiert werden, was sich auf die Öffnungsgeschwindigkeit der Seite auswirkt Dies kann sogar zu Problemen wie einem Speicherüberlauf führen und sollte daher sorgfältig entsprechend der tatsächlichen Situation eingestellt werden.
3. Zusammenfassung

Laravel bietet eine leistungsstarke Paginator-Klasse zur Implementierung der Paging-Funktion, die einfach mit weniger Code implementiert werden kann. In diesem Artikel wird erläutert, wie Sie mit Paginator Daten in der MySQL-Datenbank seitenweise anzeigen. Wir haben auch gezeigt, wie Modelleigenschaften in paginierten Ergebnissen verwendet werden. Wenn wir bei der Entwicklung von Websites und Anwendungen große Datenmengen anzeigen müssen, ist Paging eine wesentliche Funktion. Es kann nicht nur die Benutzererfahrung erheblich verbessern, sondern auch den Serveraufwand effektiv reduzieren.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn