Frage

Ich versuche mit Symfony2 ein JSON -Beispiel einzurichten.
Ich habe ein Testpaket, eine Testentität ("Nachricht") erstellt, das ORM usw. einrichten usw.
Das Nachricht (Tabelle) hat die folgenden Spalten: ID, Titel, Text
Ich versuche, eine Route */Mydomain/Meldung aufzudecken, die eine JSON -Schnittstelle einer Meldungstabelle (eine kleine Liste) aussetzen würde,

Die erste Methodik, die ich ausprobierte, war:

Erstellen Sie eine MessageController -Klasse, die verwendet Symfony\Component\HttpFoundation\Response und hat eine solche Funktion:

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

und stellen Sie eine Route wie so:

test:  
    pattern: /test  
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}  
    requirements: { _format: (xml|json), _method: GET }  
  1. Ist das eine korrekte Methodik?
  2. Was mache ich auf die code_req_here?

Die zweite Methodik, die ich ausprobiert habe, war die Verwendung der FOS/RestBundle, aber es hat nicht geschafft, das Leitfaden so wie ich verstehe, also richtig zu vervollständigen.

  1. Bitte geben Sie einen kleinen Leitfaden zur (nur) mit FOS/RestBundle, um dies (nur) zu machen
War es hilfreich?

Lösung

Ist das eine korrekte Methodik?

Ja, ich mag es, aber ich würde die Routing -Regel ein bisschen ändern:

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

Was stelle ich auf die code_req_here?

Setzen Sie das Array ein, das Sie in das JSON -Format konvertieren möchten. ex. Array (array ('id' => 1, 'value' => 'test'), array ('id' => 2, 'value' => 'Smart'))

Andere Tipps

Ich empfehle die Verwendung

http://jmsyst.com/bundles/jmsserializerbundle

$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top