Reutilizar consultas en Laravel con Eloquent

¿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.

Cursosdesarrolloweb ©. Todos los derechos reservados.

Login

Create an Account Back to login/register