public function __clone() {
$this->id = null;
}
您可能需要先分离
该实体,然后才能持久化它。我现在没有方便的开发机器来测试这个。
$f = clone $e;
$em->detach($f);
$em->persist($f);
$em->flush();
更新
__clone()
方法或执行任何其他异常操作
$new = clone $old;
$em->persist($new);
$em->flush();
刷新后,
$new
实体就有了一个新 ID,并被保存为数据库中的新行。
我仍然会通过
__clone()
方法将 ID 属性设为 null,因为从纯模型视图来看它是有意义的。
更新2
__clone()
unset($this->_entityPersister, $this->_identifier);
$new = clone $discount;
$new->setId(null);
$discountRequest = new DiscountRequest();
$discountRequest->setDiscount($new);
$discountRequest->setOldDiscount($discount->getId());
$entityManager->persist($discountRequest);
$entityManager->detach($discount);
$entityManager->flush();
public function __clone() {
unset($this->id);
}