Page 130 - 0149-curso-laravel-5_Neat
P. 130
Laravel 5
Convertir modelos en Arrays o JSON
Laravel incluye métodos para transformar fácilmente el resultado obtenido de la consulta a
un modelo de datos a formato JSON o a formato array. Esto es especialmente útil cuando
estamos diseñando una API y queremos enviar los datos en formato JSON. Además, al
realizar la transformación se incluirán los datos de las relaciones que se hayan cargado al
hacer la consulta. Para realizar esta transformación simplemente tenemos que usar los
métodos toJson() o toArray() sobre el resultado de la consulta:
$user = User::first();
$arrayUsuario = $user->toArray();
$jsonUsuario = $user->toJson();
También podemos transformar una colección entera de datos a este formato, por ejemplo:
$arrayUsuarios = User::all()->toArray();
$jsonUsuarios = User::all()->toJson();
En ocasiones nos interesará ocultar determinados atributos de nuestro modelo en la
conversión a array o a JSON, como por ejemplo, el password o el identificador. Para hacer
esto tenemos que definir el campo protegido hidden de nuestro modelo con el array de
atributos a ocultar:
class User extends Model {
protected $hidden = ['id', 'password'];
// O también podemos indicar solamente aquellos que queramos mostrar:
// protected $visible = ['name', 'address'];
}
Respuestas especiales
Con lo que hemos visto en la sección anterior solo se realizaría la transformación a JSON,
pero si queremos devolverlo como respuesta de una petición (por ejemplo, como respuesta
a una petición de un método de una API), tendremos que utilizar el método response()-
Respuestas especiales 130