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

Numerische Bereiche mit RangeFilter

Numerische Bereiche mit RangeFilter

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

SearchFilter (Kapitel 31) prüft auf ÜBEREINSTIMMUNG, NICHT auf GRÖSSER/KLEINER – für Zahlenbereiche wie priority ist der RangeFilter das richtige Werkzeug.

RangeFilter anwenden

api/src/Entity/Project.php
use ApiPlatform\Doctrine\Orm\Filter\RangeFilter;

#[ApiFilter(RangeFilter::class, properties: ['priority'])]

Die Operatoren im Überblick

Query-ParameterBedeutung
priority[gt]=3priority GRÖSSER als 3
priority[gte]=3priority GRÖSSER ODER GLEICH 3
priority[lt]=3priority KLEINER als 3
priority[lte]=3priority KLEINER ODER GLEICH 3
priority[between]=2..4priority ZWISCHEN 2 und 4 (beide EINGESCHLOSSEN)

Einen Bereich abfragen

curl -k 'https://localhost/api/projects?priority[between]=2..4'

between nutzt ZWEI Werte, GETRENNT durch ZWEI Punkte (..) – LESBARER als zwei separate gte/lte-Parameter, aber INHALTLICH GLEICHWERTIG.

curl -k 'https://localhost/api/projects?priority[gte]=2&priority[lte]=4'

Diese ZWEITE Schreibweise liefert das GLEICHE Ergebnis wie between – BEIDE Varianten funktionieren PARALLEL und lassen sich je nach Frontend-Bedarf wählen.

Mit Sortierung kombinieren

curl -k 'https://localhost/api/projects?priority[gte]=4&order[priority]=asc'

Alle HOCHPRIORITÄREN Projekte (priority ≥ 4), aufsteigend NACH Priorität sortiert – GENAU der Anwendungsfall für ein React-Dashboard (Block 10), das "dringende Projekte" gefiltert anzeigen soll.

Tipp: RangeFilter funktioniert AUCH auf DateTimeImmutable-Feldern wie createdAt – Kapitel 34 zeigt dafür den SPEZIALISIERTEN DateFilter mit einer noch KOMFORTABLEREN, datumsspezifischen Syntax.