Как настроить фильтры в symfony 6 с помощью платформы API?
Я создал API в Symfony 6 и теперь хочу добавить несколько фильтров, используя платформу API 2.6.8.
В моем проекте я установил API-платформу с:
composer require api
Следуя документации в
config/services.yaml
Я добавил фильтр, логический в этом случае.
parameters:
services:
Materials.boolean_filter:
parent: 'api_platform.doctrine.orm.boolean_filter'
arguments: [ { inStock: ~ } ]
tags: [ 'api_platform.filter' ]
_defaults:
autowire: true
autoconfigure: true
public: false
App\:
resource: '../src/'
exclude:
- '../src/DependencyInjection/'
- '../src/Entity/'
- '../src/Kernel.php'
- '../src/Tests/'
Затем я создал папку API с ее файлом .yaml, как это
api/Materials.yaml
с участием:
App\Entity\Materials:
collectionOperations:
get:
filters: ['Materials.boolean_filter']
И я создал файл с именем api_platform.yaml в папке конфигурации, как это
config/api_platform.yaml
api_platform:
mapping:
paths:
- '%kernel.project_dir%/src/Entity' # default configuration for annotations
- '%kernel.project_dir%/config/api/' # yaml or xml directory configuration
doctrine:
enabled: true
Я думал, что эти пути были правильными. Я не знаю, чего мне не хватает в конфигурации для решения проблемы: Это ошибка, которая у меня возникает, когда я делаю запрос к API:
ЗАПРОС:
http://localhost:3000/api/materials?inStock=false
ОШИБКА:
Кто-нибудь может мне помочь? Спасибо!