LOAD VS WITH EN LARAVEL
load() - Lazy Eager Loading
Se ejecuta después de la consulta principal.
Usar load cuando ya se tienen los modelos y luego se cargan las relaciones.
$users = User::all();
$users->load('posts');
Cómo funciona
- Ejecuta la consulta inicial para obtener los usuarios.
- Ejecuta una consulta adicional para cargar las relaciones (posts).
Cuándo usar load
- Cuando las relaciones se necesitan de forma condicional.
- Cuando ya está trabajando con un modelo o colección existente.
with - Eager Loading
Se ejecuta antes de la consulta principal.
Usar with cuando se sabe de antemano qué relaciones se van a necesitar.
$users = User::with('posts')->get();
Cómo funciona
Ejecuta una sola consulta optimizada (o el mínimo necesario) para cargar los usuarios junto con sus posts.
Cuándo usar with
- Cuando se sabe que relaciones se necesitan antes de ejecutar la consulta.
- Mejor opción para el rendimiento en la mayoría de los casos.