Saltar al contenido

¿Quieres aprender a reutilizar consultas en Laravel con Eloquent para evitar escribir más código de la cuenta?.

Yo me he encontrado en muchas ocasiones con la necesidad de reutilizar consultas con Eloquent para basándome en distintas condiciones hacer una cosa u otra, por ejemplo, para obtener unos datos u otros de una consulta a la base de datos con Laravel.

En el caso concreto que propongo se me pedía en un trabajo poder mostrar una serie de datos al usuario para el año actual y el año anterior. En ese momento me vino a la cabeza la necesidad de tener una consulta base que pudiera reutilizar para ambas consultas, es decir, todos los with y select comunes para evitar escribir más código de lo necesario.

En un principio pense en el método clone de PHP, que si bien es justamente para clonar objetos, en Eloquent no se comporta de la forma esperada y falla el resultado final:

Cómo ya he comentado, el resultado final no es el esperado y no me servía esta forma de reutilizar la consulta. Pero revisando la documentación de Laravel encontré lo que realmente sí me sirvió.

 

La función helper with, que es la que realmente hace que la consulta pueda reutilizarse correctamente y que el resultado final sea el esperado.

Gracias a la función with utilizando el objeto inicial junto con clone la respuesta es la esperada.

school Curso completo

Curso Laravel 12
Completo 2026

El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.

access_time 8 horas de contenido
layers 4 tecnologías en 1
update 100% actualizado
code Proyectos prácticos
Ver Curso Laravel 12 arrow_forward

star Incluido en cualquier suscripción

Rutas de aprendizaje