获取最后一个插入ID与教条2?

我怎样才能得到最后的插入ID与教条2 ORM? 我没有在教条的文件中find这个,这甚至有可能吗?

我不得不使用这个刷新后得到最后一个插入ID:

$em->persist($user); $em->flush(); $user->getId(); 

调用实体pipe理器的持久化方法后,可以访问该ID。

 $widgetEntity = new WidgetEntity(); $entityManager->persist($widgetEntity); $entityManager->flush(); $widgetEntity->getId(); 

你需要刷新才能得到这个ID。

语法错误修复:在$ entityManager-> flush()被调用后添加了分号。

如果您不使用实体,而是使用Native SQL,则可能需要获取最后插入的ID,如下所示:

 $entityManager->getConnection()->lastInsertId() 

对于具有PostgreSQL等序列的数据库,请不要提供序列名作为lastInsertId方法的第一个参数。

 $entityManager->getConnection()->lastInsertId($seqName = 'my_sequence') 

欲了解更多信息,请看看这里和这里的 GitHub上的代码。

调用flush()可能会添加大量新实体,所以实际上并没有“lastInsertId”的概念。 然而,Doctrine会在生成标识字段时填充标识字段,因此在调用flush之后访问id字段将始终包含新“持久”实体的标识。

有点迟了回答这个问题。 但,

如果它是一个MySQL数据库

如果在数据库和表定义中定义了AUTO_INCREMENT$doctrine_record_object->id将会工作。