1
我已經下載了一個使用Halo 5 API的GitHub上的小項目。現在,如果我在網站上的MY玩家標籤類型,它會給我這樣的響應:獲取API數據以顯示在視圖中 - Laravel 5.2
{"SpartanRank":114,"Xp":4291837,"TotalKills":12653,"TotalDeaths":10383,"Kd":1.218626601175,"GamesWon":480}
我想在例如,不是一個JSON格式的視圖單獨顯示出來。
這是3種方法我現在所擁有的:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\UriInterface;
use App\User;
use GuzzleHttp;
use Illuminate\Support\Facades\Input;
use Illuminate\Validation\Validator;
use App\Http\Controllers\Controller;
use Symfony\Component\HttpFoundation\Response;
class ImageController extends Controller {
public function generate(Request $request) {
// Validate email and password.
$this->validate($request, [
'gamertag' => 'required|min:3',
]);
$gamertag = Input::get('gamertag');
// Get data from API
$playerStats = $this->getPlayerStats($gamertag);
$playerArray = $this->getPlayerArray($playerStats);
$spartanRank = json_decode($playerArray['SpartanRank'], true);
$XP = json_decode($playerArray['Xp'], true);
$TotalKills = json_decode($playerArray['TotalKills'], true);
$TotalHeadshots = json_decode($playerArray['TotalHeadshots'], true);
$TotalShotsFired = json_decode($playerArray['TotalShotsFired'], true);
$TotalDeaths = json_decode($playerArray['TotalDeaths'], true);
$Kd = json_decode($playerArray['Kd'], true);
$GamesWon = json_decode($playerArray['GamesWon'], true);
return view('stats')
->with('spartanRank', $spartanRank)
->with('XP', $XP)
->with('TotalKills', $TotalKills)
->with('TotalShotsFired', $TotalShotsFired)
->with('TotalHeadshots', $TotalHeadshots)
->with('TotalDeaths', $TotalDeaths)
->with('Kd', $Kd)
->with('GamesWon', $GamesWon);
}
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());
}
}
protected function getPlayerArray($playerStats) {
$array = [];
$array['SpartanRank'] = $playerStats->Results[0]->Result->SpartanRank;
$array['Xp'] = $playerStats->Results[0]->Result->Xp;
$array['TotalKills'] = $playerStats->Results[0]->Result->ArenaStats->TotalKills;
$array['TotalDeaths'] = $playerStats->Results[0]->Result->ArenaStats->TotalDeaths;
$array['Kd'] = $array['TotalKills']/$array['TotalDeaths'];
$array['GamesWon'] = $playerStats->Results[0]->Result->ArenaStats->TotalGamesWon;
return $array;
}
}
這是我的看法:
@extends('home')
@section('content')
@include('pages.partials.nav')
Spartan Rank: {{ $spartanRank }} <br>
Spartan XP: {{ $XP }}<br>
Total Kills: {{ $TotalKills }}<br>
Total Headshots: {{ $TotalHeadshots }}<br>
Total Shots Fired: {{ $TotalShotsFired }}<br>
Total Deaths: {{ $TotalDeaths }}<br>
KD: {{ $Kd }}<br>
Games Won: {{ $GamesWon }}<br>
@stop
所以如何顯示例如該{ 「TotalShotsFired」},進入一個視圖,如:射擊總數:{{$ player-> TotalShotsFired}} ????
哪裏是$陣列來從因爲它給我的錯誤? – David
你需要做這樣的事情:$ array = {「SpartanRank」:114,「Xp」:4291837,「TotalKills」:12653,「TotalDeaths」:10383,「Kd」:1.218626601175,「GamesWon」:480}和然後將這個$數組傳遞給'player'=> $ array。 –
我得到它的工作,檢查我在底部生成方法做了什麼,並在 – David