Я ищу способ установить значение по умолчанию для логического фильтра (без настройки фильтра через GET-параметры). Чтобы сделать мой вопрос более понятным: вместо использования этого запроса
http://localhost/api/myclass?archived=0
я просто хочу получить все неархивированные объекты:
http://localhost/api/myclass
Поэтому я хочу установить стандартный набор фильтров (как я также могу установить стандартный набор фильтров заказа).
Мой любимый способ - использовать аннотации. Я не смог найти его в документации по платформе API.
<?php
namespace AppBundle\Entity\MyClass;
use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Annotation\ApiResource;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\BooleanFilter;
/**
* MyClass
*
* @ORM\Table(name="my_class")
* @ORM\Entity(repositoryClass="AppBundle\Entity\MyClass")
*
* @ApiResource(
* attributes={
* "normalization_context"={"groups"={"api_read", "api_read_v2"}},
* "denormalization_context"={"groups"={"api_write"}}
* }
* )
* @ApiFilter(BooleanFilter::class, properties={"archived"})
*/
class MyClass
{ ...
/**
* @var bool|null
* @Groups({"api_read", "api_write"})
* @ORM\Column(name="archived", type="boolean", nullable=true)
*/
protected $archived = 0;
...
}