Как настроить фильтры в 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

ОШИБКА:

Кто-нибудь может мне помочь? Спасибо!

0 ответов

Другие вопросы по тегам