私のzf2プロジェクトでは、次のように作成されたユーザーエンティティを参照するdoctrine 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 の代わりに参照を取得するにはどうすればよいですか?