Comment puis-je obtenir le dernier identifiant d'insertion avec doctrine 2 ORM? Je ne l'ai pas trouvé dans la documentation de la doctrine, est-ce même possible?).
Je devais l'utiliser après la couleur pour obtenir le dernier identifiant d'insertion:
$em->persist($user);
$em->flush();
$user->getId();
Vous pouvez accéder à l'ID après avoir appelé la méthode de persistance du gestionnaire d'entités.
$widgetEntity = new WidgetEntity();
$entityManager->persist($widgetEntity);
$entityManager->flush();
$widgetEntity->getId();
Vous faites devez vider pour obtenir cet identifiant.
Erreur de syntaxe Correction: Le point-virgule ajouté après que $ entityManager-> flush () a été appelé.
Si vous n'utilisez pas d'entités mais du SQL natif comme indiqué ici , vous souhaiterez peut-être obtenir le dernier identifiant inséré, comme indiqué ci-dessous:
$entityManager->getConnection()->lastInsertId()
Pour les bases de données avec des séquences telles que PostgreSQL , notez que vous pouvez indiquer le nom de la séquence comme premier paramètre de la méthode lastInsertId
.
$entityManager->getConnection()->lastInsertId($seqName = 'my_sequence')
Pour plus d'informations, consultez le code sur GitHub ici et ici .
L'appel de flush () peut potentiellement ajouter beaucoup de nouvelles entités, il n'y a donc pas vraiment la notion de "lastInsertId". Toutefois, Doctrine renseignera les champs d’identité à chaque fois qu’un champ sera généré. Par conséquent, si vous accédez au champ id après le vidage de l’appel, celui-ci contiendra toujours l’ID d’une entité "persistante".
Un peu tard pour répondre à la question. Mais,
Si c'est une base de données MySQL
devrait $doctrine_record_object->id
fonctionne si AUTO_INCREMENT
est défini dans la base de données et dans la définition de votre table.