[英]Doctrine: Many-To-Many Relationship with ID
在“ Doctrine 2多对多”关系中,可能没有联接表中的组合键 ,而是拥有ID列。
A_B
ID
A_ID
B_ID
当前的问题是,它按升序对插入的ID进行排序,但是我需要它们按照从表单中添加它们的顺序。
谢谢
多对多关系并不是要有秩序的。 如果要订购某些商品,则需要向联接表中引入额外的数据,它不再是联接表而是一个单独的实体。 因此,为了排序关系,您必须定义“连接实体”并为两个表设置多对一实现,如下所示:
Table A Table AB Table B
ID A_ID ID
B_ID
order
AB表与A和B具有多对一关系。
对的,这是可能的
Table A Table AB Table B
ID ID
A_ID ID
B_ID
order
在实体中,您应该定义:
/**
* @ORM\ManyToMany(targetEntity="\YourNameSpace\Model\Entities\B",fetch="EXTRA_LAZY")
* @ORM\JoinTable(
* name="AB",
* joinColumns={
* @ORM\JoinColumn(name="B_ID", referencedColumnName="A_ID")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="B_ID", referencedColumnName="ID")
* }
*)
*/
protected $B;
在B实体中:
/**
* @ORM\ManyToOne(targetEntity="\YourNameSpace\Model\Entities\A", inversedBy="AB", fetch="EXTRA_LAZY")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="A_ID", referencedColumnName="ID")
* })
*/
protected $A;
但是,如果您的主要问题只是排序,则可以将创建的字段添加到表中并对其进行排序。
->orderBy('AB.created', 'DESC')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.