Фильтры не применяются

У меня есть фильтры, но они не применяются к данным

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use ApiPlatform\Core\Annotation\ApiResource;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\Common\Collections\Collection;
use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter; 

/**
 * @ORM\Entity(repositoryClass="App\Repository\HostRepository")
 *
 * @ApiResource(
 *     routePrefix="/profile"
 * )
 *
 * @ApiFilter(SearchFilter::class, properties={"id": "exact"})
 *
 */
class Host
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;
    .....

Я отправляю такой запрос http://localhost/api/profile/hosts?id=1

Все ответы возвращаются мне (включая id = 1) Тот же результат с «именем» и другими параметрами

В чем может быть проблема?


person Billizzard    schedule 04.01.2019    source источник
comment
зачем вам вообще нужен фильтр в поле id? простой http://localhost/api/profile/hosts/1 должен работать   -  person Denis Alimov    schedule 04.01.2019


Ответы (1)


В документации это не указано. Но фильтр не будет работать, пока вы не укажете в файле api_platform.yaml

framework:
    serializer: { enable_annotations: true }

Как правильно отмечено в комментариях, это упоминается в документации в разделе конфигурации:
api-platform.com/docs/core/serialization#configuration

person Billizzard    schedule 04.01.2019
comment
На самом деле это упоминается в документации. api-platform.com/docs/core/serialization#configuration - person Jakub Matczak; 04.01.2019