Retornar JSON de una consulta con Eloquent en Laravel: Muchas veces cuando realizamos consultas sobre una base de datos, deseamos devolver en diferentes formas y formatos el conjunto de datos resultante (Dataset), es por ello que en este artículo veremos cómo realizar una consulta en Laravel y devolver una respuesta en formato JSON,
Retornar JSON de una consulta con Eloquent en Laravel
Supongamos que tenemos una consulta sobre una tabla llamada Usuarios:
$identificacion= $request->input(‘identificacion’);
$U = Usuarios::where(‘identificacion’, $identificacion)->where(‘estado’, ‘1’)->get();
Con la anterior consulta obtenemos el usuario o los usuarios que tengan la identificación que obtenemos y que su estado sea igual a «1«.
Ahora podemos armar el JSON que devolveremos como respuesta, este puede ser armado con valores que podemos obtener de varias consultas, para este ejemplo solo utilizamos una muy sencilla, veamos:
🌟 ¡Visita Nuestra Tienda para Programadores! 🌟Descubre Códigos Fuente, Cursos, Software, Computadoras, Accesorios y Regalos Exclusivos. ¡Todo lo que necesitas para llevar tu programación al siguiente nivel!
Pasando los valores que necesitamos a variables Php.
$id = $U[0]->id;
$nombres = $U[0]->nombres;
$apellido_1 = $U[0]->apellido_1;
$apellido_2 = $U[0]->apellido_2;
Armando nuestra respuesta JSON:
return response()->json([
‘id’ => $id,
‘nombres’ => $nombres,
‘apellido_1’ => $apellido_1,
‘apellido_2’ => $apellido_2
]);
De esta forma podemos recuperar estos valores en la vista haciendo uso de AJAX.
$.ajax({
type: «post»,
url: ‘consulta’,
data: {
documento: documento
},
success: function (Usuario) {
console.log(Usuario.id)
console.log(Usuario.nombres)
console.log(Usuario.apellido_1)
console.log(Usuario.apellido_2)
}
});
Cabe recordar que en la url se está especificando «consulta«, esta es la ruta creada en el archivo routes.php con el método POST, de lo contrario no podríamos utilizar la función contenida en el controlador, Un ejemplo de su creación sería la siguiente:
Route::post(‘consulta’, ‘ControladorController@consulta’);