我想在我的 Doctrine-Entity 中实现一个人类可读的 ID。我想保留 DB-ID 以供工作并添加诸如“PRE12-00005”之类的内容(带有前缀和年份,并且每个新年都从 0 开始)。我尝试添加一个自定义 ID 生成器,但似乎 Doctrine 无法在一个实体中使用两个生成的值。
/**
* @var integer
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @var string
* @ORM\Column(name="name", type="string", length=25, unique=true)
* @ORM\GeneratedValue(strategy="CUSTOM")
* @ORM\CustomIdGenerator(class="NameGenerator")
*/
protected $name;
Doctrine 总是尝试将生成器的返回值保存到“id”-Field 中,并将 null 保存到“name”中。还有另一种实现方式吗?