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
use ApiPlatform\Doctrine\Orm\Filter\RangeFilter;
#[ApiFilter(RangeFilter::class, properties: ['priority'])]
Die Operatoren im Überblick
| Query-Parameter | Bedeutung |
|---|---|
priority[gt]=3 | priority GRÖSSER als 3 |
priority[gte]=3 | priority GRÖSSER ODER GLEICH 3 |
priority[lt]=3 | priority KLEINER als 3 |
priority[lte]=3 | priority KLEINER ODER GLEICH 3 |
priority[between]=2..4 | priority 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.