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
   125   126   127   128   129   130   131   132   133   134   135