在我的 zf2 项目中,我有学说 2 个实体,它们引用由以下创建的用户实体:
/**
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="created_by", referencedColumnName="id")
**/
protected $createdBy;
我想在 中设置这个引用,PrePersist
我该怎么做?我尝试了以下(我不知道它是否正确):
/** @ORM\PrePersist */
public function prePersist() {
if ($this->createdBy === null) {
$session = new \Zend\Authentication\Storage\Session;
$userId = $session->read();
if ($userId !== null) {
$this->createdBy = $userId;
} else {
throw new \Exception("Invalid User");
}
}
}
但主要问题是它$userId
是一个整数,并且createdBy
必须保存用户的引用而不是用户ID。
有更好的方法吗?如果没有,我怎样才能得到参考而不是用户 ID?