mongodb-query - Api-Platform ODM IRI 参考获取空对象
问题描述
我想使用具有一对多引用的 Product 和 Price 类。这是我的产品课。
/**
* @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...
}
这是价格等级
/**
* @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 放置和获取价格,但是当我想将产品放入 swagger ui 时,我使用此参考。
{
"name": "productno1",
"prices": [
"/api/prices/1/"
]
}
它给出了 201。我可以检查它存储的数据库。产品名称为 productno1,但价格部分为空。任何人都可以帮助解决问题吗?
解决方案
我用 inversedby 更改了 Product 类中价格变量的 mappedby 标签,然后问题解决了。
推荐阅读
- openstack - ubuntu、RHEL、任意云镜像的登录密码
- python - 获取第二个和第三个斜杠之间的值
- rest - 对 Azure 服务总线队列的 REST 调用
- python - 如何根据用户输入循环回到先前的意图?
- java - SQLite DELETE 查询不会从数据库中删除
- mysql - 在 SQL 中使用聚合值和非聚合值
- teradata - 将价值保留到 teradata 中的某个日期
- c# - 重定向到不同的 URL 并在 ASP.net 的地址栏中显示另一个 URL(此 URL 中的页面不存在)
- sql - 如何在 Rails 类模型范围内编写格式为 'SELECT ... FROM ... WHERE ... IN ( SELECT ... )' 的 SQL?
- java - 分配两个彼此相等的数组问题