Возврат массива в Laravel API Resource без изменения порядка ключей - PullRequest
0 голосов
/ 02 октября 2018

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

[
  "123" => ["total"=>123, "average"=>12.7],
  "456" => ["other"=>"data"],
]

, где ключи - это идентификаторы для других объектов, уже предоставленных API.Однако когда я отправляю эти данные в ресурс, ответ по существу превращает данные в прямой массив, поэтому представление JSON выглядит следующим образом:

[
  ["total": 123, "average": 12.7],
  ["other": "data"]
]

Я думаю, что это скорее проблема вопросас json_encode под капотом, но могу ли я что-нибудь сделать в методе toArray(), чтобы сохранить ключи, когда они числовые строки?Единственное, что мне до сих пор работало, это добавление нечислового строкового ключа (например, dummy к объекту) или добавление буквы к каждому ключу (например, a123, a456 и т. Д.).,

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете попытаться отправить ответ от контроллера обратно с помощью встроенного в Laravel JSON-конвертера:

$toJson = [
      "123" => ["total"=>123, "average"=>12.7],
      "456" => ["other"=>"data"],
 ];
 return response()->json($toJson);

Это успешно вернет JSON, похожий на это:

{
  '123': {
    total: 123,
    average: 12.7,
  },
  '456': {
    other: "data",
  },
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...