Suche mit SearchFilter
Suche mit SearchFilter
~14 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
Bisher lässt sich NUR seitenweise durch ALLE Projekte blättern – der SearchFilter ergänzt eine GEZIELTE Suche nach Feldwerten, WIEDER OHNE eigenen Query-Code.
SearchFilter anwenden
use ApiPlatform\Metadata\ApiFilter;
use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
#[ApiResource(
normalizationContext: ['groups' => ['project:read']],
denormalizationContext: ['groups' => ['project:write']]
)]
#[ApiFilter(SearchFilter::class, properties: [
'name' => 'partial',
'description' => 'partial',
])]
#[ORM\Entity(repositoryClass: ProjectRepository::class)]
class Project
{
// ... unverändert
}#[ApiFilter] ist ein WEITERES Attribut NEBEN #[ApiResource] – das properties-Array legt fest, WELCHE Felder durchsuchbar sind und MIT welcher Vergleichsstrategie.
partial vs. exact
| Strategie | Verhalten |
|---|---|
partial | SQL LIKE %wert% – findet Teilstrings, GROSS-/Kleinschreibung meist ignoriert |
exact | SQL = wert – NUR exakte Übereinstimmung |
start | SQL LIKE wert% – Treffer NUR am Anfang |
end | SQL LIKE %wert – Treffer NUR am Ende |
Die Suche testen
curl -k 'https://localhost/api/projects?name=Relaunch'{
"hydra:member": [
{"id": 1, "name": "Website-Relaunch", "...": "..."}
],
"hydra:totalItems": 1
}Der Query-Parameter name ENTSPRICHT dem Property-Namen aus dem properties-Array – name=Relaunch findet AUCH "Website-Relaunch", da partial konfiguriert ist.
Mehrere Suchkriterien kombinieren
curl -k 'https://localhost/api/projects?name=Website&description=Redesign'MEHRERE Query-Parameter werden AUTOMATISCH mit UND verknüpft – NUR Projekte, die BEIDE Kriterien GLEICHZEITIG erfüllen, erscheinen im Ergebnis.
Tipp: SearchFilter erscheint AUTOMATISCH in der Swagger UI (Kapitel 6) als eigene Query-Parameter-Felder – ein KOMFORTABLER Weg, die Filter INTERAKTIV auszuprobieren, ohne curl-Befehle von Hand zu tippen.