我正在从数据库中提取一个基本实体,将其克隆到循环中以创建新实体,更改一些细节,然后保留该实体。
出于某种原因,这在呼叫EntityManager->flush()
时addToIdentityMap
UnitOfWork
中抛出No Entity in Identity Map
。
我还尝试创建一个实体并手动将一个属性设置为另一个,没有区别。
我对教义内部不是特别熟悉,这里出了什么问题?
尝试向实体类添加 __clone
方法以取消标识符,以便 Doctrine 将其识别为新实体:
public function __clone()
{
if ($this->id) {
$this->id = null;
}
}
请注意,该方法以 Doctrine 的文档为模型,用于安全实现__clone