現在、OneToMany コレクションの結果をフィルタリングしようとしていますが、うまくいきません。
ここのドキュメントに記載されているようにフィルターを設定しようとしましたが、役に立ちませんでした。Foos
次のコードでは、コレクション/api/foosをフィルタリングするオプションのみを取得します。
/api/foos/1?bar.isRetired=falseに配置したい/必要な場所で、多くの「foos」を含む 1 つの「Bar」の結果を返しますが、「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;
}
任意のポインタをいただければ幸いです。
Flex と API-Platform 2.1 で Symfony4 を使用しています