Obtener el último ID insertado con Eloquent en Laravel

Publicado por Keygured
hace 3 meses

En un proyecto en Laravel estoy usando un código como este para guardar los datos de una empresa en la base de datos:

public function postGuardarEmpresa() {
    $post = \Request::All();
    $data = new Empresa;
    $data->nombre = $post['name'];
    $data->direccion = $post['address'];
    $data->telefono = $post['phone']; $data->fecha_registro = date("Y-m-d H:i:s");  $data->fecha_modificacion = date("Y-m-d H:i:s");
    if ($data->save()) {
        return Response::json(['success' => true], 200);
    }
}

Quero retornar el último ID insertado pero no sé cómo conseguirlo.

Gracias!

Respuesta de Gordon Shumway
hace 3 meses

Con Eloquent una vez que guardás el registro en la base de datos el identificador que se insertó queda registrado en el attributo correspondiente de tu modelo. Suponiendo que "id" sea tu clave primaria al guardarlo podés acceder con ->id. Ej:

if ($data->save()) {
    $data->id; // Aca obtenés el identificador registrado en la tabla
    return Response::json(['success' => true], 200);
}

Lo mismo aplica si utilizaras el método estático "create":

$empresa = Empresa::create([...]);
$empresa->id; // Identificador registrado

Saludos.

Respuesta de Keygured
hace 3 meses

Muchas gracias Gordon, no sabía que con create era así

Para poder participar del foro necesitas iniciar sesión con tu cuenta. Si no tienes una puedes registrarte utilizando tu email!

Iniciar sesión Quiero registrarme