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.