[英]ManyToOne Relationship not working in Symfony using Annotations Mapping
我正在嘗試使用注釋映射在 symfony 中創建一對多關系。 一切似乎都很好,但約束不起作用。 我可以在產品表上插入數據,而無需在供應商的表上插入數據,因為供應商是一個超級實體。 這是我的嘗試:
產品.php
/**
* @ORM\ManyToOne(targetEntity="Supplier", inversedBy="products")
* @ORM\JoinColumn(name="$supplierId", referencedColumnName="$id")
*/
private $supplier;
/**
* @var integer
*
* @ORM\Column(name="supplier_id", type="integer")
*/
private $supplierId;
供應商.php
/**
* @ORM\OneToMany(targetEntity="Product", mappedBy="$supplier")
*/
private $products;
public function __construct()
{
$this->products = new ArrayCollection();
}
添加上述內容后,我運行了這個命令
php bin/console doctrine:schema:update --force
但這種關系從未建立,請問有什么問題?
這是因為您在名稱中使用了 php 變量,而 mappingBy 從中刪除了$
符號
@ORM\JoinColumn(name="$supplierId", referencedColumnName="$id")
和
@ORM\OneToMany(targetEntity="Product", mappedBy="$supplier")
它應該是
產品.php
/**
* @ORM\ManyToOne(targetEntity="Supplier", inversedBy="products")
*/
private $supplier;
/**
* @var integer
*
* @ORM\Column(name="supplier_id", type="integer")
*/
private $supplierId;
供應商.php
/**
* @ORM\OneToMany(targetEntity="Product", mappedBy="supplier")
*/
private $products;
您將在此處找到更多信息
此外,如果您想避免出現問題,請將數組集合分配給 products 變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.