我有一个名为Question
的{{1}}实体。我希望默认情况下使用Doctrine注释将code
的值设置为code
。
这就是我尝试的方法,但我收到了错误:
id
或者:
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $code = $id;
感谢。
答案 0 :(得分:2)
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
我不知道你的需求,但也许postPersist事件是你想要的:
postPersist - postPersist事件发生在一个实体之后 实体已经坚持不懈。它将在数据库之后调用 插入操作。生成的主键值可在 postPersist活动。
然后在你的实体中:
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $code;
/** @PostPersist */
public function doStuffOnPostPersist()
{
$this->code = $this->id;
}
重要的是要明白,你的学说实体只有在坚持之后才会有一个ID,因此在事后坚持事件之后。