В Doctrine2, используя что-то вроде:
$user = array('username' => 'example', 'passsword' => 'changeme'); $conn->insert('users', $user); Как мне получить последний идентификатор пользователя, который я только что вставил? Если это невозможно сделать, то как вы используете идентификатор, чтобы вы могли:
 $id = //something here. $user = array('username' => 'example', 'passsword' => 'changeme', 'id' => $id); $conn->insert('users', $user); 
Если вы используете ORM
 $em->persist($object); $em->flush(); $object->getId(); 
если вы используете DBAL:
 $conn->lastInsertId(); 
http://www.doctrine-project.org/api/dbal/2.5/class-Doctrine.DBAL.Connection.html#_lastInsertId
  Можно использовать метод Doctrine\DBAL\Connection::lastInsertId() . 
Он может использоваться как с собственными запросами, так и с ручными вставками.
Пример:
 $query = 'INSERT INTO blabla...'; $connection->executeUpdate($query, $params); var_dump($connection->lastInsertId()); 
Если вы используете ORM, вы можете получить экземпляр соединения с менеджером сущностей:
 $connection = $em->getConnection(); 
  Заметка: 
  Помимо технических деталей, я согласен с @Layke в использовании объекта для вашего конкретного случая. 
Если вы хотите, чтобы ваша организация, которую вы пытаетесь установить,
  /** * @Id @Column(type="integer") * @GeneratedValue */ private $id; 
Затем, когда вы сохраняете свой объект, диспетчер объектов заполнит объект, который вы пытаетесь сохранить с идентификатором.
Однако некоторые оговорки состоят в том, что вы не можете сделать это с помощью составных клавиш, очевидно, и вам, очевидно, нужно сбросить все сущности. Поэтому, если вы отсоединяете Entity, который имеет связь с сохраняемым объектом, к которому вы пытаетесь получить идентификатор, тогда вы не сможете получить идентификатор.
Кроме того, ответ Флакла звучит.
 $em->persist($object); $em->flush(); $object->getId(); 
 $conn->lastInsertId();  вы получите последний вставленный идентификатор, только используя DBAL Doctrine (без ORM).