在我的徽章实体中,我有这个多人协会:
<?php
class Badges
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false, unique=true)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* Unidirectional - Many users have Many new Matches (OWNING SIDE)
*
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Entity\Event", cascade={"persist"})
*/
private $match;
}
该活动将其与此徽章相关联。许多徽章可以有很多事件。没关系。
现在我的问题是徽章可以有多次同一事件。和教义2不喜欢这样,并抛出一个错误。类似于&#34;这种关系(Badge_id - Event_id)已经存在。
我该如何解决?
非常感谢
答案 0 :(得分:1)
您可以为您的关系添加另一个属性count
,该属性将存储重复对的数量。如果记录已经存在,您只需增加计数而不是尝试插入新行。
要在Doctrine中定义与属性的关系,您需要在Badge
和Event
实体之间的中间定义实体:
+---------+ +---------+
| | | |
| Badge | | Event |
| | | |
+--+------+ +------+--+
1 1
| |
| +---------------+ |
| | | |
+-N-+ Badge_Event +-N--+
| |
+---------------+
在Badge_Event实体中,您可以定义新属性count
。