Я пытаюсь создать ответ JSON в этом формате:
{
"id": "",
"goalLink": [{
"iconUrl": "",
"title": ""}]
}
Я объявил переменные как
$id;
$goalLink = [];
Затем в конструкторе я создал
$this->id = 123;
$this->goalLink = [
'iconUrl' => null,
'title' => null
];
теперь, когда я делаю что-то подобное в функции
public function example() {
$client = API::client();
$url = "some url here";
$data = [
'id' => $this->id,
'goalLink' => [
'iconUrl' => $this->goalLink['iconUrl'],
'title' => $this->goalLink['title']
]
];
$client->post($url, ['json' => $data]);
}
но это формат $ data, который example () отправляет в API
{
"id": "",
"goalLink": {
"iconUrl": "",
"title": ""}
}
Я проверил на других форумах, но не смог найти решение. Может кто-нибудь, пожалуйста, помогите мне здесь. Я не уверен, где я иду не так.
Обертывание вашего ассоциативного массива с помощью iconUrl и заголовка внутри индексированного массива обеспечит дополнительную оболочку.
public function example() {
$client = API::client();
$url = "some url here";
$data = [
'id' => $this->id,
'goalLink' => [
[
'iconUrl' => $this->goalLink['iconUrl'],
'title' => $this->goalLink['title']
]
]
];
$client->post($url, ['json' => $data]);
}
Других решений пока нет …