En este artículo voy a explicar cómo obtener el id del último elemento insertado en una tabla (en mi caso lo hice con una base de datos de MySQL pero debería funcionar en otros motores) a través de Eloquent, usando el framework Laravel.
Obtener el último id insertado sirve cuando tenemos relaciones en nuestras bases de datos, y para crear la relación correcta necesitamos saber cuál es el id del elemento que acabamos de insertar.
Nota: ya hicimos esto con CodeIgniter.
Último ID de tabla con Eloquent y Laravel
Normalmente en Laravel definimos nuestros modelos de Eloquent y los guardamos usando el método save
,
Laravel va a guardar nuestro modelo pero además de eso va a refrescarlo, poniéndole todos los datos recién guardados; por lo que si queremos acceder al id simplemente tenemos que acceder a la propiedad. Veamos:
<?php
namespace App\Http\Controllers;
use App\Area; # Nuestro modelo
class AreasController extends Controller
{
public function agregar(GuardarArea $peticion)
{
$area = new Area; # Crear nuevo modelo
# Ponerle los datos para guardar
$area->nombre = $peticion->nombre;
# Guardar en BD
$area->save();
# ==================================
# Aquí tenemos el id recién guardado :)
# ==================================
$idAreaRecienGuardada = $area->id;
# Y podemos obtener cualquier propiedad, pues está refrescado
# Aquí ya puedes hacer lo que quieras con el id
}
}
En mi código, después de llamar a save
accedo a la propiedad id
del modelo, la cual será la que tiene la base de datos.
Esto supone que tu campo autoincrementable se llama id, si no se llama así, simplemente accede a otra propiedad y listo. Claro está que también puedes acceder a cualquier propiedad del modelo.
Con eso terminamos por hoy. Lee más sobre PHP, Laravel o la web.
Hermano… UN MILLÓN DE GRACIAS!!!
Tenía más de 3 horas buscando cómo encontrar ese valor porque estoy creando el usuario, pero al mismo tiempo estoy llenado una segunda tabla (estudiantes).
Me has salvado bro. Bendiciones