Я использую платформу API v1.2.0 в Symfony 4.2.11, и я пытаюсь создать простой простой фильтр для фильтрации пользователей в моем приложении, используя аннотации, как предложено на странице документации платформы API. Но они не фильтруют данные, я все равно получаю все элементы в ответ.
Помимо аннотации, я попытался добавить фильтр в качестве службы, предложенной на веб-сайте платформы API. Но в этом случае я получаю сообщение об ошибке:
Attribute "bind" on service "app.string_filter" cannot be inherited from "_defaults" when a "parent" is set. Move your child definitions to a separate file
Чтобы избежать путаницы, я пробовал оба способа независимо друг от друга.
- Аннотации не работают, конечная точка просто работает как без них.
- Когда я объявляю службу, она терпит неудачу, как в верхнем сообщении об ошибке.
Это код моей сущности с аннотациями:
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Annotation\ApiResource;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
use Doctrine\ORM\Mapping as ORM;
use Lexik\Bundle\JWTAuthenticationBundle\Security\User\JWTUserInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="App\Repository\UserRepository")
* @ORM\Table(name="app_user")
* @ApiResource()
* @ApiFilter(SearchFilter::class, properties={"username": "partial"})
*/
class User implements JWTUserInterface
{
...
Любая помощь приветствуется, спасибо!