отправка 4 параметров в одном объекте или одном массиве объектов для ответа API остальных - PullRequest
0 голосов
/ 07 ноября 2019

Я учусь RestAPI. Я хочу отправить 4 параметра в одном объекте в ответ.

Код:

 return response()->json(['success'=>true,'message'=>'success', 'data' => array($my_total_credit,$latest_credit_date,$my_total_buyers,$total_payment_requests)]);

С кодом выше я получаю ответ как показано ниже:

{
    "success": true,
    "message": "success",
    "data": [
        75000,
        "2019-10-24",
        3,
        4
    ]
}

В коде выше я отправляю массив данных. Ожидаемый: Но теперь я хочу получить ответ одного объекта или массива объектов, который будет иметь более 4 параметров, как показано ниже:

{
    "success": true,
    "message": "success",
    "data": [{
     "parameter1": "75000",
     "parameter2": "2019-10-24",
     "parameter3": "3",
     "parameter4":  "4"
    }]
}

Как я получу ожидаемый ответ? Пожалуйста, руководство. Заранее спасибо.

1 Ответ

0 голосов
/ 07 ноября 2019
$my_total_credit = ...;
...

return response()->json([
  'success'=>true,
  'message'=>'success', 
  'data' => array(array(
      "parameter1" => $my_total_credit,
      "parameter2" => $latest_credit_date,
      "parameter3" => $my_total_buyers,
      "parameter4" => $total_payment_requests 
  ))
]);

И если вы можете получить эти данные из запроса к базе данных, вы можете только сделать это:

$data = Model::where('xxx')->selectRaw(
    'xxx AS parameter1, xxx AS parameter2, xxx AS paramter3'
  )->first();
return response()->json([
  'success'=>true,
  'message'=>'success', 
  'data' => array($data)
]);

Попробуйте проверить массив php на ответ json_encode()

>>> $a=[[1 => '2342', 2 => 'fsaf']]
>>> json_encode($a, true)
=> "[{"1":"2342","2":"fsaf"}]"  # output

>>> $a=[1 => '234', 2=> 'fasa']
>>> json_encode($a, true)
=> "{"1":"234","2":"fasa"}" # output
=> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...