4

現在、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 を使用しています

4

0 に答える 0