过滤一对多集合

Dou*_*oug 5 symfony doctrine-orm api-platform.com

我目前正在尝试过滤我的 OneToMany 集合结果,但运气不佳。

我已尝试按照此处文档中的说明设置过滤器,但无济于事。使用以下代码,我只能选择在Foos集合/api/foos <- 上进行过滤的选项 <- 即使将分页设置为每页 1,此请求实际上也不会在应用过滤器后完成。

图像

图像

我希望/需要它位于/api/foos/1?bar.isRetired=false并返回 1 'Bar' 和许多 'foos' 的结果,但其中 'foo.isRetired = false'

例子

// config/packages/api_filters.yaml
services:
    filters.retired_filter:
            parent: 'api_platform.doctrine.orm.boolean_filter'
            arguments: [ { bars.isRetired: ~ } ]
            tags: [ 'api_platform.filter' ]


// src/Entity/Foo.php

/* @ApiResource(attributes={"filters"={"filters.retired_filter"}}) */
class Foo
{
    private $id;
    private $name;
    /** @ORM\OneToMany(targetEntity="Bars", mappedBy="foo") */
    private $bars;
    public function __construct(){
        $this->bars = new ArrayCollection();
    }
}

// src/Entity/Bar.php

/* @ApiResource() */
class Bar
{
    private $id;
    private $name;
    /* @ORM\Column(name="is_retired", type="boolean") */
    private $isRetired;
    /* @ORM\ManyToOne(targetEntity="Foo", inversedBy="bars") */
    private $foo;
}
Run Code Online (Sandbox Code Playgroud)

任何指示将不胜感激。

我正在使用带有 Flex 和 API 平台 2.1 的 Symfony4