¿Qué es Eloquent ORM?
Laravel incluye un mapeador objeto-relacional (ORM) llamado Eloquent. Eloquent simplifica la interacción con la base de datos e implementa el patrón ActiveRecord. Con Eloquent, defines una clase “modelo” por cada tabla de la base de datos. A través del modelo puedes obtener, insertar, actualizar y eliminar registros.Antes de usar Eloquent, configura la conexión a la base de datos en
config/database.php.
Por defecto se usan las variables DB_* del archivo .env.Crear un modelo
Genera un modelo con el comando Artisanmake:model.
-m.
app/Models.
Correspondencia entre modelo y tabla
Eloquent deduce el nombre de la tabla a partir del nombre de la clase. El nombre en snake_case y en plural se convierte en el nombre de la tabla.
Si la tabla no sigue la convención, indícalo con la propiedad
$table.
Timestamps
Por defecto Eloquent gestiona automáticamente las columnascreated_at y updated_at.
Si añades $table->timestamps() en la migración, se rellenan solas al guardar o actualizar.
Para desactivarlo, pon $timestamps a false.
Protección de mass assignment
Al guardar datos en bloque con Eloquent hay que configurar la protección de mass assignment.fillable
Indica las columnas asignables con la propiedad$fillable.
guarded
Al contrario,$guarded indica columnas no asignables.
Flujo de ejecución de una consulta Eloquent
Cómo se ejecuta internamente una consulta comoUser::where()->get():
Operaciones CRUD básicas
Obtener registros (Read)
Todos los registros:Crear registros (Create)
Inserta un registro concreate (necesita $fillable).
Actualizar registros (Update)
Recupera el modelo, cambia valores y llama asave.
update permite actualizar varias columnas de una vez.
Eliminar registros (Delete)
Elimina condelete.
Métodos de consulta básicos
Ejemplo práctico: operaciones con el modelo Post
Controlador que opera sobre la tablaposts creada mediante migración.
Ciclo de vida de los eventos del modelo
Flujo de eventos al invocarsave(). Los eventos difieren entre creación y actualización, pero saving y saved se disparan en ambos casos.
Próximos pasos
Migraciones
Repasa cómo crear con migraciones las tablas que usa Eloquent.