Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Recoger id de la última inserción con Symfony

22 de febrero de 2017

¿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.

@javiereguiluz

22 febrero 2017, 16:27
#2

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

@link4your

22 febrero 2017, 16:37
#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;
 
    // ...
}

@javiereguiluz

22 febrero 2017, 16:45