doctrine文档中 merge()方法的描述说:
将分离实体的状态合并到此EntityManager的持久性上下文中,并返回该实体的托管副本。传递给合并的实体不会与此EntityManager关联/管理。
但我多次看到下一个代码:
$entity = $em->getRepository(...)->findOne($id);
if (null === $entity) {
$entity = new Entity();
$em->persist($entity);
} else {
$entity->setGeneratedAt(new \DateTime());
$em->merge($entity);
}
$em->flush();
为什么使用 $ em->合并($ entity)? $ entity 的返回副本无效, $ entity 已经托管,没有 merge()调用