Api-平台 ODM IRI 引用获取空对象

Api-Platform ODM IRI reference gets empty objects

我想将 Product 和 Price classes 与一对多引用一起使用。这是我的产品 class。

    /**
     * @ApiResource
     *
     * @Document
     */
    class Product
    {

        /**
         * @ODM\Id(strategy="INCREMENT", type="integer")
         */
        private $id;

        /**
         * @ODM\Field(type="string")
         * @Assert\NotBlank
         */
        public $name;

        /**
         * @ODM\ReferenceMany(targetDocument=Price::class, mappedBy="product", cascade={"all"}, storeAs="id")
         */
        public $prices ;

        public function __construct()
        {
            $this->prices = new ArrayCollection();

        }
//getter and setter of id...
    }

这是价格class

/**
 * @ApiResource
 *
 * @ODM\Document
 */
class Price
{

    /**
     * @ODM\Id(strategy="INCREMENT", type="integer")
     */
    private $id;


    /**
     * @ODM\Field(type="float")
     * @Assert\NotBlank
     * @Assert\Range(min=0, minMessage="The price must be superior to 0.")
     * @Assert\Type(type="float")
     */
    public $price;

    /**
     * @Assert\Type(type="integer")
     */
    private $discount;

    /**
     * @ODM\ReferenceOne(targetDocument=Product::class, inversedBy="prices", storeAs="id")
     */
    public $product;

我可以使用 id=1 放置和获取价格,但是当我想大摇大摆地放置产品时 ui 我使用此参考。

{
  "name": "productno1",
  "prices": [
    "/api/prices/1/"
  ]
}

它给出了 201。我可以检查它存储的数据库。产品名称为 productno1,但价格部分为空。谁能帮忙解决问题?

我用 inversedby 更改了 Product class 中 prices 变量的 mappedby 标签,然后问题解决了。