Как в symfony2 поставить запрос к данным json?

1

У меня есть запрос:

SELECT Bank_ID, Status, COUNT(Bank_ID) FROM int_client_bank WHERE status = 30 or status = 50 or status = 35 or status = 37 GROUP BY Bank_ID, Status;

И посмотреть данные:

"Bank_ID"   "Status"    "COUNT(Bank_ID)"
"1"         "30"        "772"
"1"         "35"        "58"
"1"         "50"        "151"
"2"         "30"        "124"
"2"         "35"        "27"
"2"         "50"        "25"
"3"         "30"        "227"
"3"         "35"        "16"
"3"         "37"        "1"
"3"         "50"        "143"
"4"         "30"        "337"
"4"         "35"        "23"
"4"         "37"        "1"
"4"         "50"        "98"
"5"         "30"        "72"
"5"         "35"        "7"
"5"         "50"        "9"
"6"         "30"        "113"
"6"         "35"        "3"
"6"         "50"        "68"
"7"         "30"        "16"
"7"         "50"        "10"
"8"         "30"        "13"
"8"         "35"        "1"
"8"         "50"        "6"
"9"         "30"        "16"
"9"         "35"        "2"
"9"         "50"        "6"
"10"        "30"        "4"
"10"        "35"        "2"
"11"        "30"        "2"
"11"        "50"        "2"
"12"        "30"        "4"
"12"        "35"        "1"
"12"        "50"        "1"
"13"        "30"        "3"
"13"        "50"        "2"
"14"        "30"        "5"
"15"        "30"        "1"
"15"        "50"        "1"
"16"        "30"        "1"
"17"        "30"        "1"
"18"        "30"        "2"

Как я могу поместить это в symfony, чтобы сделать JsonResponse?:

return new JsonResponse(array('data' => $result, 'success' => true));

Мне нужны данные вроде:

{
    "data":[
        {"Bank_Id":"1","Status":"30","Count":"772"},
        {"Bank_Id":"1","Status":"35","Count":"58"},
        ...
    ],
    "success":true
}
  • 0
    Числовые массивы php превращаются в [] в JSON. ассоциативные массивы превращаются в {} в JSON. Вы не показываете нам, как данные отображаются. Кроме того, почему вы не используете сущность?
Теги:

2 ответа

1

Не совсем понятно, что вы просите, но я предполагаю, что symfony сделает JsonResponse на основе ваших данных, которые выполняются следующим образом:

use Symfony\Component\HttpFoundation\JsonResponse;
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT Bank_ID, Status, COUNT(Bank_ID) FROM int_client_bank WHERE status = 30 or status = 50 or status = 35 or status = 37 GROUP BY Bank_ID, Status');

$bankResult = $query->getResult();
$response = new JsonResponse();
$response->setData(array(
    'data'    => $bankResult,
    'success' => true
));
  • 0
    но как я могу сделать запрос доктрины? положить его в json $ bankresult?
  • 0
    $bankResult не является JSON``JsonResponse () `автоматически json кодирует данные вашего массива и добавляет заголовок типа содержимого. Поэтому просто убедитесь, что $bankResult содержит ваш набор данных / ответ на запрос. Добавил некоторую Доктрину к примеру.
Показать ещё 3 комментария
0

Вам нужно будет json закодировать массив, а затем отправить его как ответ json.

$jsonArray = array(
            'data' => $result,
       'success' => true,
        );

        $response = new Response(json_encode($jsonArray));
        $response->headers->set('Content-Type', 'application/json; charset=utf-8');

        return $response;
  • 1
    используйте объект JsonResponse, и вам не нужно вручную устанавливать заголовки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню