Прежде всего, я хочу сообщить вам, что я уже прочитал документы о проблеме, с которой я сталкиваюсь сегодня, и я также выполнил поиск в StackOverflow и Google, но не нашел правильного решения.
Я создаю API управления взаимоотношениями с клиентами для практики с Symfony 4 и платформой API. Я уже многое узнал об API Platform, и хотя я мог бы использовать аннотации для конфигурации ресурсов, я заставил себя использовать YAML, чтобы узнать больше об этом.
Итак, у меня есть ресурс Customer, который имеет несколько атрибутов: id , имя , фамилия , адрес электронной почты , Компания , создана на , обновлена на и владелец . Моя цель - добавить SearchFilter на этот ресурс (в YAML) и добавить большинство атрибутов в качестве свойств этого фильтра.
Я уже попробовал решение, приведенное здесь: https://github.com/api-platform/core/issues/1755. Проблема в том, что мне не удается заставить его работать. В services.yaml я вижу, что вы можете добавлять аргументы, но я не знаю, какой эквивалент вы можете найти в аннотациях ...
В config/services.yaml
:
# filters
app.my_filter:
parent: 'api_platform.doctrine.orm.search_filter'
tags: ['api_platform.filter']
autowire: false
autoconfigure: false
public: false
В resources/customer.yaml
:
App\Entity\Customer:
collectionOperations:
get:
normalization_context:
groups: ['Customer:Get']
filters: ['app.my_filter']
То, что я собираюсь сделать, похоже на аннотации в src/Entity/Customer.php
:
/**
* @ApiResource
*
* [...]
*
* @ApiFilter(SearchFilter::class, properties={
* "firstname": "partial",
* "lastname": "partial",
* "emailAddress": "partial",
* "company": "partial"
* })
*/
class Customer
{
...
}
Я надеюсь, что вы сможете помочь и что моя проблема четко объяснена. Если нет, пожалуйста, скажите мне, и я сделаю все возможное, чтобы дать вам более подробную информацию.
Спасибо!