Получить последний идентификатор вставки с доктриной 2?

Как я могу получить последний идентификатор вставки с доктриной 2 ORM? Я не нашел этого в документации доктрины, разве это возможно?

Мне пришлось использовать это после флеша, чтобы получить последний идентификатор вставки:

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

Вы можете получить доступ к id после вызова метода persist менеджера сущностей.

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

Вам нужно свернуть, чтобы получить этот идентификатор.

Исправлена ​​ошибка синтаксиса: добавлена ​​точка с запятой после вызова $ entityManager-> flush ().

Если вы не используете сущности, а Native SQL, как показано здесь, вы можете получить последний вставленный идентификатор, как показано ниже:

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

Для баз данных с такими последовательностями, как PostgreSQL, не нужно lastInsertId имя последовательности как первый параметр метода lastInsertId .

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

Для получения дополнительной информации ознакомьтесь с кодом на GitHub здесь и здесь .

Вызов flush () может потенциально добавить много новых объектов, поэтому на самом деле не существует понятия «lastInsertId». Однако Doctrine будет заполнять поля идентификатора всякий раз, когда будет сгенерирован, поэтому доступ к полю id после вызова flush всегда будет содержать идентификатор вновь «сохраненного» объекта.

Немного поздно ответить на вопрос. Но,

Если это база данных MySQL

должен работать $doctrine_record_object->id если AUTO_INCREMENT определен в базе данных и в определении вашей таблицы.