如何让doctrine不能在我的数据库中保留重复的对象?

时间:2012-01-05 22:37:45

标签: php orm doctrine-orm deduplication

我有两种不同的对象:位置

Ride 来源目的地位置对象。

位置未指回 Ride

这意味着我在学说中有多对一的单向关系。

如何制作原则以确保我的数据库中没有任何重复的位置对象?

例如: 如果我从明尼苏达州明尼阿波利斯到明尼苏达州曼凯托创建一个 Ride 并坚持下去,我现在已经在我的数据库中存储了一个 Ride 和两个 Location 对象

既然这些都是坚持的,我就会从明尼苏达州的Mankato到明尼苏达州的New Ulm创建另一个 Ride 并坚持下去。

Doctrine重复了位置明尼苏达州Mankato。

doctrine是否具有此功能,或者我有责任检查是否创建了重复的对象?

1 个答案:

答案 0 :(得分:2)

您可以对位置名称(可能是州名+城市名称)设置唯一约束吗?

您有责任查看该位置是否已存在。如果是这样,请获取它并将其提供给您的Ride对象。

class Ride {
   private $from;
   private $to;

   public function setFrom(Location $from) {$this->from = $from;}

   public function setTo(Location $to) {$this->to = $to;}
 }