Doctrine2如何设置Id值

时间:2011-11-03 23:58:24

标签: php doctrine-orm

我有一个问题是出于对Doctrine2内部运作的好奇心。我作为一个用户看到了一个非常干净和强大的界面,但必须有一些重要的魔术在幕后工作。

当我生成一个简单的实体时,它看起来像这样:

class SimpleEntity
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string")
     */
    protected $title;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set title
     *
     * @param string $title
     */
    public function setTitle($title)
    {
        $this->title = $title;
    }

    /**
     * Get title
     *
     * @return string 
     */
    public function getTitle()
    {
        return $this->title;
    }
}

正如您将注意到一件事显然不存在,没有办法设置id,但是学说工厂返回带有set id的实体。这怎么可行?我试图查看来源,但在某个地方丢失了轨道。

如何在不在类层次结构中的情况下覆盖受保护的值?

1 个答案:

答案 0 :(得分:4)