Magento 2 Experten — Hyvä Theme, Tailwind CSS & SEO aus einer Hand ›

Pagination-Grundlagen

Pagination-Grundlagen

~14 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026

Kapitel 28 kündigte es an: GET /api/projects liefert AKTUELL ALLE Projekte in EINER Antwort – API Platform PAGINIERT AUTOMATISCH, das war bisher NUR wegen der WENIGEN Testdaten nicht sichtbar.

Mehr Testdaten erzeugen

api/src/DataFixtures/AppFixtures.php
public function load(ObjectManager $manager): void
{
    for ($i = 1; $i <= 45; $i++) {
        $projekt = new Project();
        $projekt->setName(sprintf('Projekt %02d', $i));
        $projekt->setDescription(sprintf('Automatisch erzeugtes Testprojekt Nummer %d.', $i));
        $projekt->setPriority(random_int(1, 5));
        $manager->persist($projekt);
    }

    // ... Tags unverändert

    $manager->flush();
}
docker compose exec php bin/console doctrine:fixtures:load --no-interaction

Die Standard-Pagination testen

curl -k https://localhost/api/projects
{
  "@context": "/api/contexts/Project",
  "@id": "/api/projects",
  "@type": "hydra:Collection",
  "hydra:member": [ /* 30 Einträge */ ],
  "hydra:totalItems": 45,
  "hydra:view": {
    "@id": "/api/projects?page=1",
    "@type": "hydra:PartialCollectionView",
    "hydra:first": "/api/projects?page=1",
    "hydra:last": "/api/projects?page=2",
    "hydra:next": "/api/projects?page=2"
  }
}

NUR 30 von 45 Projekten in hydra:member – der STANDARD-Wert für itemsPerPage ist 30. hydra:totalItems zeigt die GESAMTZAHL, hydra:view liefert FERTIGE Links zur nächsten/ersten/letzten Seite.

Die nächste Seite abrufen

curl -k 'https://localhost/api/projects?page=2'

Der Query-Parameter page steuert die Seite – KEIN eigener Code nötig, API Platform übernimmt das LIMIT/OFFSET in der generierten Datenbankabfrage VOLLSTÄNDIG selbst.

Achtung: hydra:last FEHLT in der Antwort, wenn paginationPartial aktiviert ist (relevant bei SEHR großen Tabellen, bei denen COUNT(*) selbst zu teuer wird) – für UNSER Projekt bleibt die STANDARD-Vollzählung aktiv.

Tipp: hydra:view ist GENAU das Feld, das eine React-Pagination-Komponente (Block 10) auswerten sollte, statt hydra:totalItems und itemsPerPage SELBST zu verrechnen – die fertigen Links vermeiden Off-by-one-Fehler.