convertir una tabla postgres en json en yii2: <?php namespace app\controllers; use yii\web\Controller; use yii\web\Response; use app\models\Libro; // Suponiendo que tienes un modelo Libro class LibroController extends Controller { public function actionLista() { // Obtener datos como array usando asArray() $libros = Libro::find()->asArray()->all(); \Yii::$app->response->format = Response::FORMAT_JSON; // Devolver los datos directamente como JSON return $libros; } } convertir una tabla postgres en json en laravel: <?php namespace App\Http\Controllers; use App\Models\Libro; use Illuminate\Http\JsonResponse; class LibroController extends Controller { public function lista(): JsonResponse { // Obtener todos los registros como array $libros = Libro::all(); // Devolver los datos como JSON return response()->json($libros); } } Cómo definir la ruta para acceder a este método (en routes/web.php o routes/api.php): use App\Http\Controllers\LibroController; Route::get('/libro/lista', [LibroController::class, 'lista']); javascript: 1. Con promesas (.then) Cómo consumirlo con JavaScript sería igual que en Yii2-laravel: fetch('/libro/lista') .then(response => response.json()) .then(data => { data.forEach(libro => { console.log(libro.titulo); }); }); 2. Con async/await (más legible) Cómo consumirlo en JavaScript sería igual que en Yii2-laravel: async function obtenerLibros() { try { const response = await fetch('/libro/lista'); const data = await response.json(); data.forEach(libro => { console.log(libro.titulo); }); } catch (error) { console.error('Error:', error); } } obtenerLibros(); 3. Con callback (usando XMLHttpRequest) Cómo consumirlo en JavaScript sería igual que en Yii2-laravel: function obtenerLibrosConCallback(callback) { const xhr = new XMLHttpRequest(); xhr.open('GET', '/libro/lista'); xhr.onload = function() { if (xhr.status === 200) { const data = JSON.parse(xhr.responseText); callback(null, data); } else { callback(new Error('Error en la solicitud: ' + xhr.status)); } }; xhr.onerror = function() { callback(new Error('Error de red')); }; xhr.send(); } // Usando la función con callback obtenerLibrosConCallback(function(error, data) { if (error) { console.error(error); } else { data.forEach(libro => { console.log(libro.titulo); }); } }); jquery: 1.-Ejemplo usando $.getJSON() <!DOCTYPE html> <html> <head> <title>Consumir API con jQuery</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <ul id="lista-libros"></ul> <script> $(document).ready(function() { $.getJSON('/libro/lista') .done(function(data) { // data es un array de objetos libros $.each(data, function(index, libro) { $('#lista-libros').append('<li>' + libro.titulo + '</li>'); }); }) .fail(function(jqxhr, textStatus, error) { console.error('Error al consumir la API:', textStatus, error); }); }); </script> </body> </html> 2.-Ejemplo usando $.ajax(): $.ajax({ url: '/libro/lista', type: 'GET', dataType: 'json', success: function(data) { data.forEach(function(libro) { console.log(libro.titulo); }); }, error: function(jqxhr, textStatus, error) { console.error('Error:', error); } }); laravel: use Illuminate\Support\Facades\Http; $response = Http::get('https://api.example.com/data'); if ($response->successful()) { $data = $response->json(); // decodifica JSON automáticamente a array // procesar $data } else { // manejar error } yii2: Formas comunes de consumir APIs en PHP / Yii2: 1. Usar cURL directamente (funciona en cualquier PHP) use yii\httpclient\Client; $client = new Client(); $response = $client->get('https://api.ejemplo.com/data')->send(); if ($response->isOk) { $data = $response->getData(); // Obtienes array o json decodificado automáticamente } 2. Usar la clase yii\httpclient\Client que trae Yii2 (más moderno y elegante) use yii\httpclient\Client; $client = new Client(); $response = $client->get('https://api.ejemplo.com/data')->send(); if ($response->isOk) { $data = $response->getData(); // Obtienes array o json decodificado automáticamente }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter