Use Pomm with Api platform.
The search filter supports:
partialstrategy usesLIKE %text%to search for fields that containing the text.start strategyusesLIKE text%to search for fields that starts with text.end strategyusesLIKE %textto search for fields that ends with text.word_startstrategy usesLIKE text% OR LIKE % text%to search for fields that contains the word starting with text.
Prepend the letter i to the filter if you want it to be case insensitive. For example ipartial or iexact.
Add an entry in services.yml:
services:
app.book.search_filter:
parent: 'api_platform.pomm.search_filter'
arguments: [ { 'title': 'exact', 'description': 'partial'} ]
tags: [ { name: 'api_platform.filter', id: 'book.search' } ]And in resources.yml use the service filter:
resources:
AppBundle\Entity\Book:
collectionOperations:
get:
filters: ['book.search']