我目前正试图过滤我的OneToMany收藏结果,没有太多运气。
我已尝试设置docs here中所述的过滤器无效。
使用以下代码,我只能选择过滤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;
}
任何指针都会受到高度赞赏。
我正在使用Symfony4与Flex和API-Platform 2.1