Récupérer le dernier id inséré avec doctrine 2?
Comment puis-je récupérer le dernier id inséré avec l'ORM doctrine 2? Je ne l'ai pas trouvé dans la documentation de doctrine, est-ce même possible?
- essayez ceci, à la fin de votre insert de retour à l'id... comme return $this->id;
Vous devez vous connecter pour publier un commentaire.
J'ai eu à utiliser après la chasse d'eau pour récupérer le dernier id inséré:
persist()
de l'entité dans une boucle etflush()
après cela? Je suis à essayer de comprendre, mais pas de chance jusqu'à présent.code
$id = $utilisateur->getId();code
Vous pouvez accéder à l'id après l'appel de la poursuite de la méthode de l'entité gestionnaire.
Vous ne besoin de rincer afin d'obtenir ce code d'identification.
Erreur de syntaxe Fix: Ajout de point-virgule après $entityManager->flush() est appelée.
Si vous ne l'utilisez pas des entités mais Natif SQL, comme le montre ici alors vous voudrez peut-être obtenir le dernier id inséré comme indiqué ci-dessous:
Pour les bases de données avec des séquences telles que PostgreSQL veuillez noter que vous pouvez fournir le nom de la séquence en tant que premier paramètre de la
lastInsertId
méthode.Pour plus de détails, jetez un coup d'oeil au code sur GitHub ici et ici.
lastInsertId('articles_id_seq')
D'appeler la méthode flush() peut éventuellement ajouter beaucoup de nouvelles entités, donc il ny a pas vraiment la notion de "lastInsertId". Cependant, la Doctrine va remplir les champs identité à chaque fois que l'on est généré, l'accès à l'id de domaine après l'appel de la chasse d'eau toujours contenir l'IDENTIFIANT d'un nouveau "persistantes" de l'entité.
Un peu en retard pour répondre à la question. Mais,
Si c'est une base de données MySQL
devrait
$doctrine_record_object->id
travail siAUTO_INCREMENT
est défini dans la base de données et dans votre définition de la table.