Please provide a migration path for the ApiFilter attribute => query parameter.
I maintainer di solito rispondono entro 1 giorno
@soyuka ci sta già lavorando.
Dal 30/11/2025.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Description
Hi @soyuka @vinceAmstoutz
I'm currently trying to migrate my ApiFilter attribute filters to avoid the futur deprecation, as explained in
https://api-platform.com/docs/core/doctrine-filters/#introduction
But I'm currently having big trouble to understand
- How to migrate some of my filters
- What's the benefit
And I feel like I'm maybe not the only one, looking at some recent issue/discussions.
Also I think this Upgrade note could explain with more details why this changes, cause currently I didn't found satisfying explanations.
I feel like the ApiFilter attribute will be replaced by
- The new filters classes (great)
- Declaring filter in the yaml/php config (why ? I hate having to maintain a config)
- Creating new dedicated filter (why having to maintain my own filter while ApiPlatform filters was doing the trick ?)
I understand writing doc is difficult and I'm open to do PR to improve it, but first I need to understand it ^^'
Example
I would expect a big list of BEFORE/AFTER example.
I'm unsure how to write it currently, based on the issues I encounter.
Problem I still have
- I have an OrderFilter
#[ApiFilter(OrderFilter::class, properties: ['name', 'createdAt'])]
that's I tried to migrated
parameters: ['order[:property]' => new QueryParameter(filter: new OrderFilter(), properties: ['name', 'createdAt'])],
it worked fine BUT got the same issue than https://github.com/api-platform/core/issues/7361
I follow the suggestion from soyuka (https://github.com/api-platform/core/issues/7361#issuecomment-3243315889) to use service id with .instance
parameters: ['order[:property]' => new QueryParameter(filter: 'api_platform.doctrine.orm.order_filter.instance', properties: ['name', 'createdAt'])],
but then the filter does nothing as reported by https://github.com/api-platform/core/issues/7361#issuecomment-3240681163
Looking at https://github.com/api-platform/core/issues/7361#issuecomment-3243835860 I feel like I'll have to declare a new service in my config. Is it the only way ? Is it plan to introduce a new OrderFilter ?
- I have a filter with nested property
#[ApiFilter(SearchFilter::class, properties: ['languagePair.target' => 'exact'])]
As reported https://github.com/api-platform/core/pull/7121#issuecomment-3575382644 and answered by soyuka, nested properties are (voluntary) not supported anymore for those filters.
This is already discussed in https://github.com/api-platform/core/issues/7526
Filtering on nested properties requires joins which is hard to predict and may lead to unwanted behavior / performance issues, can't you create your own filter?
I have a big trouble understanding
- What was the issue before (since it works)
- How my own filter will avoid this issue (since I'll have to make my own JOIN !)
Wouldn't it be possible to still support nested properties ? Or to do somehting like OrFilter:
new NestedFilter(new ExactFilter())
Also soyuka told me I can still use the legacy (not recommended) SearchFilter but I got the same issue than the OrderFilter, something like
parameters: [
'targetLanguage' => new QueryParameter(
filter: 'api_platform.doctrine.orm.search_filter.instance',
property: 'languagePair.target'
),
]
does nothing...
Problem solved that might help someone else...
- I have a BooleanFilter on a live property I tried to migrate to
parameters: ['live' => new QueryParameter(filter: new BooleanFilter(), property: 'live')],
it worked fine BUT got the same issue than https://github.com/api-platform/core/issues/7361
I'm finally solve my issue with
parameters: ['live' => new QueryParameter(filter: new ExactFilter(), property: 'live')],
but I'm not sure of the changes.
- I have a SearchFilter
#[ApiFilter(SearchFilter::class, properties: ['name' => 'partial'])]
that I migrated into
parameters: ['name' => new QueryParameter(filter: new PartialSearchFilter(), property: 'name')],
I feel like it's the right way to do it.
- Lingua principale
- PHP
- Stelle
- 2.6k
- Fork
- 989
- Merge medio
- 1g 23h
- PR unite (30g)
- 102
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di api-platform/core
-
JSON:API: resource schemas (`*.jsonapi`) have `properties` but no `type: object`Forse già presa @ousamabenyounes l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 80/100
api-platform/core#8701 ·
I maintainer di solito rispondono entro 1 giorno
-
JSON:API: `JsonApiCollectionBaseSchemaNoPagination` declares `data` as `type: array` without `items`Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
api-platform/core#8699 ·
I maintainer di solito rispondono entro 1 giorno
-
api:openapi:export --spec-version=3.0.0 outputs `webhooks`, which is invalid in OpenAPI 3.0Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
api-platform/core#8690 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
api-platform/core#8680 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
api-platform/core#8725 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di api-platform/core
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
grokability/snipe-it#19857 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 92/100
I maintainer di solito rispondono entro 1 giorno
-
Authentication / Authorization Feature: Volunteer
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bagisto/bagisto-api#51 ·