我有两个表“RFQ”和“RFQItem”。 第一个ManyToMany关系我需要选择哪个RFQItems以RFQ形式添加到RFQ。 第二个ManyToMany关系我需要在创建新RFQ时创建新的RFQItem。
我已经配置了所有,但架构更新会引发错误:
The table with name 'rfqgroup.rfq_rfqitem' already exists.
实体:
/**
* @ORM\ManyToMany(targetEntity="RFQItem")
* @ORM\JoinColumn(referencedColumnName="id", nullable=true)
*/
protected $rfqitem;
/**
* @ORM\ManyToMany(targetEntity="RFQItem", cascade={"persist"})
* @ORM\JoinColumn(referencedColumnName="rfq_id", nullable=true)
*/
protected $rfq_item_title;
甚至可以建立这些关系吗?
答案 0 :(得分:2)
您必须使用the @JoinTable
attribute来确保“多对多”表具有唯一名称。
/**
* @ORM\ManyToMany(targetEntity="RFQItem")
* @ORM\JoinTable(name="rfq_rfqitem",
* joinColumns={@ORM\JoinColumn(name="rfq_item_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="rfqgroup_id", referencedColumnName="id")}
* )
*/
public $rfqitem;
/**
* @ORM\ManyToMany(targetEntity="RFQItem")
* @ORM\JoinTable(name="rfq_rfqitem_title",
* joinColumns={@ORM\JoinColumn(name="rfq_item_title_id", referencedColumnName="rfq_id")},
* inverseJoinColumns={@ORM\JoinColumn(name="rfqgroup_id", referencedColumnName="id")}
* )
*/
public $rfq_item_title;
您可能需要更正JoinColumn
和name
的{{1}}属性,具体取决于您在每个实体中选择的变量名称。