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

Block-4-Zusammenfassung: Filtering, Pagination & Sorting

Block-4-Zusammenfassung: Filtering, Pagination & Sorting

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

Block 4 ist ABGESCHLOSSEN. Aus einer API, die IMMER alle Daten unsortiert zurückgab, ist eine API geworden, die Clients FEINGRANULAR steuern lässt, WAS sie in WELCHER Reihenfolge und WIE VIEL AUF EINMAL bekommen.

Was Block 4 behandelt hat

  • Kapitel 29: automatische Pagination, hydra:totalItems/hydra:view.
  • Kapitel 30: itemsPerPage anpassen, Ober- und Untergrenzen, Pagination abschalten.
  • Kapitel 31: SearchFilter mit partial/exact/start/end.
  • Kapitel 32: OrderFilter, mehrfeldige Sortierung.
  • Kapitel 33: RangeFilter für numerische Bereiche.
  • Kapitel 34: DateFilter für Datumsbereiche.
  • Kapitel 35: ein eigener AbstractFilter für Volltextsuche über mehrere Felder.

Projektstand am Ende von Block 4

api/src/ – Stand nach Kapitel 35

api/
└── src/
    ├── Entity/
    │   ├── Project.php   ← Search-/Order-/Range-/DateFilter, 45 Testdaten
    │   └── Tag.php
    ├── Filter/
    │   └── MultiFieldSearchFilter.php
    ├── Dto/
    │   └── ProjectSummary.php
    ├── Validator/
    │   ├── UniqueProjectName.php
    │   └── UniqueProjectNameValidator.php
    └── DataFixtures/
        └── AppFixtures.php  ← 45 Projekte + 2 Tags

Selbst anwenden: Tags filterbar machen

Als ÜBUNG: ergänzen Sie #[ApiFilter(SearchFilter::class, properties: ['name' => 'partial'])] auf der Tag-Entity aus Kapitel 12 – OBWOHL Tag schreibgeschützt ist, funktioniert Filterung PROBLEMLOS auf GetCollection, da Filter NUR das LESEN betreffen.

Was in Block 5 kommt

Bisher existieren Project und Tag KOMPLETT ISOLIERT voneinander – Block 5 (Kapitel 37-46) führt ECHTE Beziehungen ein: eine neue Task-Entity, verknüpft mit Project (ManyToOne/OneToMany), sowie eine ManyToMany-Beziehung zwischen Task und Tag – GENAU das Domänenmodell aus der Symfony-Schulung, jetzt als AUTOMATISCH generierte, verschachtelte API-Ressourcen.

Tipp: Filter und Pagination aus Block 4 funktionieren SPÄTER auch auf verschachtelten Collections wie /api/projects/{id}/tasks – das in diesem Block gelernte Wissen bleibt vollständig GÜLTIG, auch nachdem Beziehungen hinzukommen.