我想在我的Doctrine-Entity中实现一个人类可读的ID.我想保持DB-ID工作并添加类似"PRE12-00005"(带有前缀和年份,并且每年新的0开始).我尝试添加一个Custom-ID-Generator,但似乎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;
Run Code Online (Sandbox Code Playgroud)
Doctrine总是尝试将生成器的返回值保存到"id"-Field中,并将null保存为"name".有没有其他方法来实现它?