Saltar al contenido

¿Cómo obtener una respuesta como formato json (aplicación / json) en yii?

Solución:

Para Yii 1:

Cree esta función en su controlador (base):

/**
 * Return data to browser as JSON and end application.
 * @param array $data
 */
protected function renderJSON($data)
{
    header('Content-type: application/json');
    echo CJSON::encode($data);

    foreach (Yii::app()->log->routes as $route) {
        if($route instanceof CWebLogRoute) {
            $route->enabled = false; // disable any weblogroutes
        }
    }
    Yii::app()->end();
}

Luego, simplemente llame al final de su acción:

$this->renderJSON($yourData);

Para Yii 2:

Yii 2 tiene esta funcionalidad incorporada, use el siguiente código al final de la acción de su controlador:

Yii::$app->response->format = yiiwebResponse::FORMAT_JSON;
return $data;

$this->layout=false;
header('Content-type: application/json');
echo CJavaScript::jsonEncode($arr);
Yii::app()->end(); 

Para Yii2 dentro de un controlador:

public function actionSomeAjax() {
    $returnData = ['someData' => 'I am data', 'someAnotherData' => 'I am another data'];

    $response = Yii::$app->response;
    $response->format = yiiwebResponse::FORMAT_JSON;
    $response->data = $returnData;

    return $response;
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *