Doctrine2投掷'身份地图中没有实体'

时间:2012-06-26 23:35:37

标签: php doctrine-orm

我将一个基本实体从数据库中拉出来,在循环中克隆它以创建新实体,更改一些细节然后保持实体。

出于某种原因,在No Entity in Identity Map调用addToIdentityMap时,UnitOfWork会在EntityManager->flush()内投掷{{1}}。

我也尝试过创建一个实体并手动将所有属性设置为一个,没有区别。

我对学说内部并不是特别熟悉,这里出了什么问题?

1 个答案:

答案 0 :(得分:0)

尝试向实体类添加__clone方法以使标识符无效,以便Doctrine将其识别为新实体:

public function __clone()
{
    if ($this->id) {
        $this->id = null;
    }
}

请注意,该方法的模型为after Doctrine's docs for safely implementing __clone