Recoger id de la última inserción con Symfony

¿Cómo recojo la id de la última inserción con Symfony 3?

Gracias

Respuestas

#1

Aunque hablas de Symfony, entiendo que todo lo que tiene que ver con la base de datos lo estás haciendo con Doctrine, que es la recomendación oficial de Symfony.

Si es así, no existe esa función para obtener el último id insertado. En realidad, no existe porque no hace falta:

  1. Si ibas a usar ese id para generar el siguiente id sumándole 1, no hace falta que lo hagas porque Doctrine ya incrementa los id automáticamente.
  2. Si ibas a usar ese id para obtener el id del objeto recién creado, tampoco te hace falta. Simplemente usa $tuObjeto->getId() (o $tuObjeto->id dependiendo de cómo crees tus entidades de Doctrine) y listo. Esto tienes que hacerlo después del persist() y flush() de Doctrine.
#2

Ok gracias, si uso Doctrine, esta clase de magia del Framework es la que te puede volver loco jejeje. Un saludo.

#3

Antes he respondido un poco rápido y he dicho que Doctrine lo hace automáticamente. Eso no es correcto. En realidad, Doctrine lo hace automáticamente solo si tu se lo pides explícitamente. Para ello, hay que añadir lo siguiente en el id de la entidad:

class MiEntidad
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
 
    // ...
}