У меня проблема с доступом к данным, вложенным в массив.
Вот пример моего запроса Guzzle и способа его декодирования и возврата:
$raw_response = $client->request('GET', 'https://api.com/endpoint');
$body = $raw_response->getBody();
$body_content = json_decode($body, true);
$body_collection = collect($body_content);
return $body_collection[0]['instances'][0]['spec'];
Однако, к сожалению, это не сработает, если я верну его без ['spec']
:
return $body_collection[0]['instances'][0]
Я действительно верну некоторые данные:
{
"platform": {
"browserName": "Electron",
"browserVersion": "59.0.3071.115",
"osCpus": null,
"osMemory": null,
"osName": "linux",
"osVersion": "Debian - 8.10",
"osVersionFormatted": "Debian - 8.10"
},
"createdAt": "2018-05-30T02:05:44.648Z",
"claimedAt": null,
"completedAt": "2018-05-30T02:05:59.694Z",
"error": null,
"failed": 0,
"id": "d941be0c-27a7-41e9-b26f-bdaaedc494be",
"machineId": null,
"passed": 1,
"pending": 0,
"status": "passed",
"stdout": null,
"skipped": null,
"spec": "/root/app/cypress/integration/api/intent-match_spec.js",
"wallClockDuration": 2785,
"wallClockStartedAt": null,
"wallClockEndedAt": null,
"videos": null,
"screenshots": null
}
Однако, когда я пытаюсь получить доступ кspec
элемент ничего не возвращает в Почтальоне.Если я дам дамп так:
dd($body_collection[0]['instances'][0]['spec']);
Тогда данные будут возвращены, когда я использую Почтальон: "/root/app/cypress/integration/api/intent-match_spec.js"
Вот дамп всего $body_content
, я установилмного данных, как ноль, так как они не могут быть разделены.Также родительский массив обычно возвращает 30 других массивов, но я сократил это.
array:30 [
0 => array:26 [
"ci" => array:3 [
"url" => null
"provider" => null
"buildNumber" => "15718"
]
"commit" => array:6 [
"authorName" => null
"authorEmail" => null
"message" => null
"branch" => "master"
"sha" => null
"url" => null
]
"id" => null
"projectId" => null
"projectName" => null
"buildNumber" => 39399
"cypressVersion" => "2.1.0"
"totalPassed" => 1
"totalFailed" => 0
"totalPending" => 0
"totalSkipped" => null
"totalDuration" => 15228
"completedAt" => "2018-05-30T02:05:59.727Z"
"createdAt" => "2018-05-30T02:05:44.499Z"
"updatedAt" => "2018-05-30T02:05:59.727Z"
"status" => "passed"
"specPattern" => null
"runUrl" => null
"projectUrl" => null
"specIsolation" => false
"loadBalancing" => false
"instances" => array:1 [
0 => array:19 [
"platform" => array:7 [
"browserName" => "Electron"
"browserVersion" => "59.0.3071.115"
"osCpus" => null
"osMemory" => null
"osName" => "linux"
"osVersion" => "Debian - 8.10"
"osVersionFormatted" => "Debian - 8.10"
]
"createdAt" => "2018-05-30T02:05:44.648Z"
"claimedAt" => null
"completedAt" => "2018-05-30T02:05:59.694Z"
"error" => null
"failed" => 0
"id" => "d941be0c-27a7-41e9-b26f-bdaaedc494be"
"machineId" => null
"passed" => 1
"pending" => 0
"status" => "passed"
"stdout" => null
"skipped" => null
"spec" => "/root/app/cypress/integration/api/intent-match_spec.js"
"wallClockDuration" => 2785
"wallClockStartedAt" => null
"wallClockEndedAt" => null
"videos" => null
"screenshots" => null
]
]
"failedTests" => null
"orgId" => null
"orgName" => null
"orgDefault" => false
]
]
Можете ли вы вспомнить причину, по которой это может происходить?