过滤器不适用

时间:2019-01-04 10:09:08

标签: symfony filter api-platform.com

我有过滤器,但它们不适用于数据

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) 与“名称”和其他参数相同的结果

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

此信息未在文档中指出。但是,只有在文件api_platform.yaml

中指定后,过滤器才能起作用
framework:
    serializer: { enable_annotations: true }

正如注释中正确指出的那样,在配置部分的文档中对此进行了提及:
api-platform.com/docs/core/serialization#configuration