[英]Doctrine ManyToMany Unidirectional with shared attribute. Symfony 3.4
我有 2 个实体:Objetct 和 Product,每个表中都有一个额外的 ID:officeId 这个 id 在每个表中(我无法修改数据库)和 3 个表:
我想要一个 manyTomany 单向关系。
实体 Object:
class Object
{
/**
* @var Products[]|ArrayCollection
*
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Products")
* @ORM\JoinTable(name="ObjectProduct",
* joinColumns={@ORM\JoinColumn(name="objectId", referencedColumnName="id"),
* @ORM\JoinColumn(name="officeId", referencedColumnName="officeId")},
* inverseJoinColumns={@ORM\JoinColumn(name="productId", referencedColumnName="id"),
* @ORM\JoinColumn(name="officeId", referencedColumnName="officeId")}
* )
*
*/
private $products;
}
我的问题是尝试插入时,插入 officeId 属性两次:例如:INSERT INTO ObjectProduct (objectId, officeId, productId, officeId) VALUES (?, ?, ?, ?)
当您使用多对多关系(单向或双向)时,它会创建一个连接表。 你似乎知道这部分。
此连接表包含表示复合主键的两个外键(以确保唯一性)。 这是自动的
如果您希望更改任何内容(广告额外的 ID、额外的列...),那么您需要将 map 作为项目内部的实体并定义一对多关系而不是多对多
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.