Domanda

Sto cercando di impostare un esempio JSON utilizzando Symfony2.
Ho creato un pacchetto di prova, un ente di prova ( "Messaggio"), ha istituito il orm ecc
Il Messaggio (tabella) ha le seguenti colonne: id, titolo, testo
Sto cercando di esporre un itinerario * / mydomain / messaggio che esporrebbe un'interfaccia JSON per tabella dei messaggi (un piccolo elenco)

Il primo metodo che ho provato era:

Creare una classe MessageController che usi Symfony\Component\HttpFoundation\Response ed ha una funzione come questa:

public function testAction() {  
    $response = new Response(json_encode(**code_req_here**));  
    return $response;  
}

e impostare un percorso in questo modo:

test:  
    pattern: /test  
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}  
    requirements: { _format: (xml|json), _method: GET }  
  1. è presente una metodologia corretta?
  2. che cosa ho messo sul code_req_here?

la seconda metodologia che ho provato era usando il FOS / RestBundle ma non è riuscito a completare correttamente la guida a quanto mi risulta, quindi

  1. si prega di fornire una piccola guida su come fare (solo) questo con FOS / RestBundle
È stato utile?

Soluzione

è presente una metodologia corretta?

Si mi piace, ma vorrei modificare la regola di instradamento un po 'come questo:

test:
    pattern: /test.{_format}
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}
    requirements: { _format: (xml|json), _method: GET }

che cosa ho messo sul code_req_here?

Mettete la matrice che si desidera convertire in formato JSON. ex. array (array (=> 1, 'value' => 'test') 'id', array ( 'id' => 2, 'value' => 'intelligente'))

Altri suggerimenti

Mi consiglia di utilizzare

http://jmsyst.com/bundles/JMSSerializerBundle

$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top