GlosarioBase de datos

¿Qué es Eloquent?

Eloquent es el ORM (Object-Relational Mapping) de Laravel que permite interactuar con la base de datos usando modelos PHP en lugar de escribir consultas SQL directamente.

Eloquent ORM

Eloquent es el sistema de mapeo objeto-relacional (ORM) incluido en Laravel. Cada tabla de la base de datos tiene un "Modelo" correspondiente que se utiliza para interactuar con dicha tabla. Eloquent permite consultar, insertar, actualizar y eliminar registros de forma elegante y expresiva.

Ejemplo basico

// Definir un modelo
class Post extends Model
{
    protected $fillable = ['title', 'body', 'published'];
}

// Consultar registros
$posts = Post::where('published', true)->orderBy('created_at', 'desc')->get();

// Crear un registro
$post = Post::create([
    'title' => 'Mi primer post',
    'body' => 'Contenido del post',
    'published' => true,
]);

Relaciones

Eloquent soporta todos los tipos de relaciones comunes: hasOne, hasMany, belongsTo, belongsToMany, morphTo, morphMany, entre otras. Esto permite definir relaciones entre modelos de forma clara y acceder a datos relacionados con lazy loading o eager loading.

class Post extends Model
{
    public function comments(): HasMany
    {
        return $this->hasMany(Comment::class);
    }

    public function author(): BelongsTo
    {
        return $this->belongsTo(User::class, 'user_id');
    }
}

// Eager loading para evitar el problema N+1
$posts = Post::with(['comments', 'author'])->get();

Eloquent tambien incluye funcionalidades avanzadas como scopes, casteo de atributos, eventos de modelo, soft deletes y mucho mas. Es una de las caracteristicas mas potentes y utilizadas de Laravel.