我正在使用Halo 5 APi,我已成功从API中提取数据,例如全面杀戮或竞技场中的死亡。 为了更好地理解我是如何做到的,这里是代码。 (Shortend):
class StatsController extends Controller {
public function index(Request $request) {
// Validate Gamer-tag
$this->validate($request, [
'gamertag' => 'required|max:16|min:1',
]);
// Get the Gamer-tag inserted into search bar
$gamertag = Input::get('gamertag');
// Get data from API
$playerStats = $this->getPlayerStats($gamertag);
$playerArenaArray = $this->getPlayerArenaArray($playerStats);
$spartanRank = json_decode($playerArenaArray['SpartanRank'], true);
$TotalKills = json_decode($playerArenaArray['TotalKills'], true);
return view('player.stats')
->with('gamertag', $gamertag)
->with('spartanRank', $spartanRank)
->with('TotalKills', $TotalKills);
}
/**
* Fetch a Players stats
*
* @param $gamertag
* @return mixed
*/
protected function getPlayerStats($gamertag) {
$client = new GuzzleHttp\Client();
$baseURL = 'https://www.haloapi.com/stats/h5/servicerecords/arena?players=' . $gamertag;
$res = $client->request('GET', $baseURL, [
'headers' => [
'Ocp-Apim-Subscription-Key' => 'MY SECRET KEY HERE'
]
]);
if ($res->getStatusCode() == 200) {
return $result = json_decode($res->getBody());
} elseif ($res->getStatusCode() == 404) {
return $result = redirect()->route('/');
}
return $res;
}
/**
* Get a users stats
*
* @param $playerStats
* @return array
*/
protected function getPlayerArenaArray($playerStats) {
$array = [];
$array['SpartanRank'] = $playerStats->Results[0]->Result->SpartanRank;
$array['TotalKills'] = $playerStats->Results[0]->Result->ArenaStats->TotalKills;
return $array;
}
}
但我坚持认为我必须获取特定播放列表的数据: 因此,如果我想获取特定播放列表的数据,我必须指定播放列表ID。
我发送了一个帖子到Halo论坛寻求帮助。 这是帖子Halo 5 Post
我得到了一个人的回复,但我不知道如何实现这种回应。 以下是回复:
听起来你只是一个小小的误解或学习PHP。您的第一行只是数组和对象表示法的混合。所以你正在玩#34;在$ playerStats变量中给我一个Result数组。在Result数组中,给我第一个元素([0])。然后只需进入结果 - > ArenaStats - > TotalGamesWon。
为什么这对你的下面的方法不起作用是因为有 多个竞技场播放列表。此时,您可以对这些进行循环 播放列表并检查PlaylistId以查找您正在查找的内容 用于并返回该播放列表。播放列表从不显示相同的内容 订单,这样你就不能依赖数组索引。
我已尝试过所有内容,但我无法获得播放列表ID,因此我可以获取该播放列表的统计信息。也许你们在他说循环时理解他的意思。我已尝试过循环和许多其他事情。对不起,很长的帖子。