Doctrine2实体中自动生成的唯一字段

时间:2012-06-13 18:01:08

标签: doctrine-orm uniqueidentifier

我有一个Doctrine2实体,有两个字段,名称和URL。我想根据名称字段自动生成URL字段。

E.g。名称“John Doe”将生成URL“john-doe”

我已在name setter中实现了URL字段的生成:

public function setName($name) {
  $this->name = $name;
  $this->url = UrlGenerator::generate($name);      
}

我希望URL字段是唯一的,但不是名称字段。当两个名称转换为相同的URL时,问题是该怎么办。

E.g。名称“John Doe”=> URL“john-doe”,“john doe”=>网址“john-doe”

我想在URL已经存在于DB中的情况下将数字(例如实体数据库生成的id)添加到URL字段的末尾,但我不知道如何在实体中实现它。首先,我不能在实体类中使用实体管理器来检查碰撞。第二个问题是,在实体持久保存到数据库之前,我不知道下一个生成的id,如果URL与现有项冲突,则无法持久化。

感谢您的帮助。

0 个答案:

没有答案
相关问题