2

私の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 の代わりに参照を取得するにはどうすればよいですか?

4

1 に答える 1