Вопрос

Я пытаюсь настроить пример json, используя symfony2.
Я создал тестовый пакет, тестовую сущность ("Сообщение"), настроил orm и т. Д
Тот Самый Сообщение (таблица) содержит следующие столбцы: идентификатор, заголовок, текст
Я пытаюсь предоставить маршрут * / mydomain / message, который предоставлял бы интерфейс json для таблицы сообщений (небольшой список)

Первая методология, которую я попробовал, была:

Создайте класс MessageController, который использует Symfony\Component\HttpFoundation\Response и имеет такую функцию, как эта:

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

и установите маршрут следующим образом:

test:  
    pattern: /test  
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}  
    requirements: { _format: (xml|json), _method: GET }  
  1. правильная ли это методология?
  2. что мне надеть на code_req_here?

вторая методология, которую я попробовал, заключалась в использовании FOS / RestBundle, но, насколько я понимаю, мне не удалось правильно заполнить руководство, поэтому

  1. пожалуйста, предоставьте небольшое руководство о том, как сделать (просто) это с помощью FOS / RestBundle
Это было полезно?

Решение

правильная ли это методология?

Да, мне это нравится, но я бы немного изменил правило маршрутизации следующим образом:

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

что мне добавить в code_req_here?

Поместите массив, который вы хотите преобразовать в формат json.бывший.массив(array('id' => 1, 'value' => 'test'), массив('id' => 2, 'value' => 'smart'))

Другие советы

Я рекомендую использовать

http://jmsyst.com/bundles/JMSSerializerBundle

$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top