🧠 Laravel Eloquent: Cómo Hacer Eager Load de Relaciones Anidadas con Sintaxis de Array Limpia
Si estás construyendo aplicaciones con Laravel, probablemente te has encontrado con el problema de consultas N+1. Afortunadamente, Laravel Eloquent lo hace súper fácil de resolver usando eager loading.
¿Pero sabías que también puedes hacer eager load de relaciones anidadas usando una sintaxis de array limpia?
Hagámoslo súper simple. 👇
✅ El Problema
Cuando obtienes un modelo y sus relaciones sin eager loading, Laravel consulta la base de datos una y otra vez por cada modelo relacionado. Esto ralentiza tu aplicación.
✅ La Solución Limpia
Usa el método with() y pasa un array que incluya cualquier relación anidada. Aquí hay una forma limpia y legible de cargar datos anidados:
Book::with([
'author' => [
'contacts',
'publisher',
],
])->get();
Este código:
- Obtiene todos los libros
- Carga el
authorde cada libro - Para cada
author, también carga suscontactsypublisher
Todo en un conjunto limpio de consultas 💡
📌 Por Qué Esto Importa
- Mejor rendimiento con menos consultas
- Código más limpio que es fácil de leer y mantener
- Perfecto para respuestas de API o cuando se trabaja con relaciones complejas
💬 Consejo Final
Siempre que estés cargando datos anidados, prefiere siempre esta sintaxis de array limpia. Mantiene tu base de código elegante — y tu aplicación ultra rápida. 🔥