Al momento de hacer cualquier operación tipo CRUD como la creación, obtener una referencia al elemento que se está trabajando es crucial y esto se hace mediante el identificador del post; en la creación, dependiendo del método que emplees, puede que devuelve un bool indicando que se creó la entidad en la base de datos o devuelve el identificador o una referencia al modelo; pero, usualmente es necesario recuperar el último ID insertado en la base de datos después de realizar una operación de inserción.
En esta entrada, veremos varias formas de obtener una referencia el ID generado en la base de datos.
1. Usando el método latest Eloquent para Obtener el Último Registro
El ORM de Laravel, es decir, Eloquent, permite obtener el último registro insertado en una tabla de manera sencilla; para esta primera forma, empleamos el método latest()
para ordenar los registros por la columna ID de forma descendente y luego llamamos al método first()
para obtener el primer registro (que será el más reciente):
YourModel::latest('id')->first();
2. Usando el Método insertGetId
El método insertGetId
insertar el registro al igual que sucede con el método de insert o update y devuelve el ID al completar la operación:
$data = [
'f1' => 'V1',
'f2' => 'V2',
];
$id = YourModel::insertGetId($data);
3. Usando el Método create
de Eloquent
El método create
de Eloquent permite insertar un nuevo registro y recuperar la instancia del modelo y con esto, el ID del registro, este es el esquema por excelencia para obtener la referencia al ID:
$data = [
'f1' => 'V1',
'f2' => 'V2',
];
$yourModel= YourModel::create($data);
4. Usando el Método save
de Eloquent
Con el método save podemos operar sobre una instancia existente y crea el registro si no existe o lo actualiza si existe (tiene establecido el ID), este método NO se puede emplear de manera estática y retorna una instancia del modelo:
$yourModel = new YourModel;
$modelo->f1= 'v1';
$modelo->f2= 'v2';
$yourModel->save();
$yourModel->id;
5. Usando el Método insert
y lastInsertId
Si estamos utilizando consultas SQL directamente, podemos insertar un registro y luego recuperar su ID utilizando el método lastInsertId
.
DB::table('table')->insert([
'f1' => 'v1',
'f2' => 'v2',
]);
$id = DB::getPdo()->lastInsertId();
De esta forma, y saber cómo puedes obtener la referencia el modelo que estás guardando en la base de datos.
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter