嗨,所以我在名为 client 和 offre 的 2 个实体之间创建了多对多关系
这是我的实体客户端:
#[ORM\ManyToMany(targetEntity: Offre::class, inversedBy: 'clients')]
#[ORM\JoinColumn(name:"CLIENTID", referencedColumnName:"clientid")]
#[ORM\InverseJoinColumn(name: "OFFREID", referencedColumnName: "offreid")]
#[ORM\JoinTable(name: "clients_offre")]
private Collection $offres;
这是我的实体
#[ORM\ManyToMany(targetEntity: client::class, mappedBy: 'offres')]
private Collection $clients;
按照计划,它为我创建了一个名为clients_offre 的表,其中包含 CLIENTID 和 OFFREID。
现在我想在此表中添加一个评论字段,但该字段没有引用的ColumnName,所以我不知道该怎么做。
提前感谢那些花时间提供帮助的人!
您无法在具有额外列的两个实体之间创建直接关系。
您需要创建一个新实体作为
Client
和 Offre
之间的中介。
您的新实体可以称为
ClientOffre
,并将与 Client
和 Offre
相关,并具有两个 OneToMany 和两个 ManyToOne。
public class ClientOffre {
#[ORM\ManyToOne(targetEntity: Client::class)]
#[ORM\JoinColumn(name:"client_id", referencedColumnName:"id")]
private $client;
#[ORM\ManyToOne(targetEntity: Offre::class)]
#[ORM\JoinColumn(name:"offre_id", referencedColumnName:"id")]
private $offre;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $comment = null;
}
您当前的实体将与这个新实体建立 OneToMany 关系:
public class Client {
#[ORM\OneToMany(targetEntity: ClientOffre::class, mappedBy: "client")]
private Collection $clientOffres;
}
public class Offre {
#[ORM\OneToMany(targetEntity: ClientOffre::class, mappedBy: "offre")]
private Collection $clientOffres;
}