Eloquent – Consulta para obtener un registro sin ciertos campos

publicado por: Anonymous

estoy trabajando con Laravel 5.8. No se si se puede hacer lo que quiero…

Si para obtener un Usuario dada su ID, puedo usar la consulta:

User::find($user_id);

Y para obtener solo nombre y email del usuario:

User::find($user_id, ['nombre','email']);

¿Hay una consulta que me devuelva el usuario omitiendo campos concretos, por ejemplo la fecha de creación (created_at)?

solución

Hay para Eloquent un metodo para ocultar la salida de uno o varios atributos, se llama makeHidden($attributes) y lo colocas despues de la busqueda del find()

Aqui te coloco un ejemplo que hice en el tinker ocultando los atributos, created_at y updated_at:

$a = User::find(4);

introducir la descripción de la imagen aquí

$a = User::find(4)->makeHidden(['created_at','updated_at']);

introducir la descripción de la imagen aquí

Como se puede apreciar en la ultima salida ya no envia los atributos [‘created_at’,’updated_at’].

Espero que pueda ser de ayuda…

adjunto el link de la fuente:

https://laravel.com/docs/5.8/eloquent-collections#available-methods

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *