Estamos muy acostumbrados a utilizar el método find
de nuestros modelos Eloquent de la siguiente forma:
$user = User::find($id);
Y esta bien para los momentos que vayamos a utilizar TODOS los campos de $user
… Pero si lo pensamos un segundo, ¿siempre utilizamos absolutamente todos los campos de un modelo? ¿siempre imprimimos o aplicamos una lógica a campos como por ejemplo, updated_at
? 🤔
Creo que la respuesta es no o son para casos muy puntuales en donde si necesitamos de todos los campos de un modelo Eloquent.
Laravel Tip del Día: Especifica las columnas al buscar un modelo
El método find
no solo permite un primer argumento, que es la clave del modelo (casi siempre el id). Si no que también permite un segundo argumento de tipo arreglo, donde podemos especificar las columnas que queremos obtener.
Entonces, para el primer caso, la query que se ejecutará en la Base de Datos será:
$user = User::find(182); SELECT * FROM users WHERE id = 182;
Y para el segundo caso será:
$user = User::find(182, ['id', 'email']); SELECT id, email FROM users WHERE id = 182;
Esto es una buena practica en Base de Datos y mejora su rendimiento.
Laravel Tip Bonus 🌟
El bonus de este tip es que, no solo el método find
tiene esta feature. También es aplicable a los siguiente métodos:
Versión disponible
Esta funcionalidad esta disponible desde Laravel 5.5.
Espero que te haya gustado este Laravel Tip del Día y si fue así, por favor compartilo en tus redes sociales que ayuda mucho al sitio. Nos vemos en la próxima 😃.
Gracias por el tip. Muy útil y sobre todo una buena forma de optimizar las búsquedas en base de datos. Continúen con su excelente trabajo.
Muchas gracias Jose!
Matías una pregunta se que no tiene nada que ver con este tema, puedo me gustaría saber en que parte se debe refactorizar un código es decir donde es el lugar correcto
Como que a donde pones las refactorizaciones? Depende lo que estes refactorizando.
Pero este post te puede llegar a servir https://www.laraveltip.com/refactorizando-codigo-aplicando-casos-de-uso/
Saludos.
Excelente tip
Buen dato. Gracias
DATAZO, buenisimo Mati.
Muchas gracias!
Que buen Tip, muchas gracias
Gracias por el TIP. Es muy bueno y clarificador para los que estamos empezando en la programacion.
Muchas gracias bro