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

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

api/src/Entity/Project.php
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

StrategieVerhalten
partialSQL LIKE %wert% – findet Teilstrings, GROSS-/Kleinschreibung meist ignoriert
exactSQL = wert – NUR exakte Übereinstimmung
startSQL LIKE wert% – Treffer NUR am Anfang
endSQL 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.