Obtener el último ID insertado con Eloquent en Laravel

Publicado por Keygured
hace 5 años

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!

php laravel eloquent
Respuesta de Gordon Shumway
hace 5 años

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 5 años

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