Pregunta

No estoy realmente seguro de lo que se requiere para hacer un retorno de acción JSON.
Estoy seguro de que hay más de una manera de pelar este gato, pero no estoy seguro de qué es absolutamente requerido.

es adecuado para solo $ esto-> render (matriz ('JSON'=> Compacto ('Datos')); ¿Necesito agregar una ruta especificando su JSON?
¿También necesito agregar la aplicación Tipo de medios / JSON?
¿También necesito agregar el diseño predeterminado por defecto.json.php?
¿También necesito agregar la vista action.json.php?

Notas: Quiero cualquier URL arbitraria: www.mysite.com/controller/action para volver siempre JSON.
Preferiría poder especificar el tipo de devolución en mi acción solamente (es decir, Render Type).

¿Fue útil?

Solución

Por lo tanto, resulta que nada en la OP se requiere otra entonces esta línea cuando devuelva los datos en la parte inferior de la acción del controlador:

    return $this->render(array('json' => $data = array(), 'status'=> 200));

Somethings que deben tenerse en cuenta es que los datos devueltos de un conjunto de registros son realmente feos.Los usuarios deben hacer primero un conjunto de $ RecordSet-> a ('Array').No estoy seguro de por qué, pero a ('JSON') termina escapando todas las cotizaciones, lo que hace que la cadena JSON sea realmente funky.

Otros consejos

Devolver JSON es más fácil de lo que podría pensar.Recientemente lo hice y me sorprendió

Me acabo de mostrarle al referirlo al juego que estoy desarrollando - https://github.com/bitalchemists/elenears-erben/blob/master/app/controllers/mapscontroller.php

public function view()
{
    $gameId = $this->request->params['id'];
    if($gameId == null)
    {
        return new Response();
    }

    $xSize = 10;
    $ySize = 10;
    $fields = Maps::first(array('game_id' => $gameId))->fields;
    return compact('xSize', 'ySize', 'fields');
}

Allí usted va: usted simplemente prepara sus datos y devuélvalo.La magia es realizada por la clase Media.No sé si tiene que agregar media.php a bootstrap.php, solo pruébalo.

Supongo que la explicación es, que no tiene que proporcionar una vista o cualquier cosa, porque el litio ya sabe cómo presentar a JSON.También le enseña algo lo que realmente debe hacer el controlador, porque si escribe una vista para la misma acción, básicamente necesitaría los mismos datos.

vítores

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top