2016-03-26 4 views
3

は、私はJSONデータを以下している国のデータにはブレードに表示するコントローラーからJSONデータを送信する:Laravel 5.2以下

class CountryData { 
    public function GetCountries() { 
     return response()->json(['Data' => \App\Models\CountryModel::all()]); 
    } 
} 

を返すクラスは、機能上

HTTP/1.0 200 OK Cache-Control: no-cache Content-Type: application/json 
{ 
    "Data":[ 
       { 
        "CountryID" : 1, 
        "Country" : "United States", 
        "CountryCode": "US" 
       } 
      ] 
} 

をすることによって返されます以下はコントローラのコードです。以下は

$Countries = (new \App\DataAccess\CountryData())->GetCountries(); 
return view('Country.List')->with('Countries', json_decode($Countries)); 

ビューのコード

@foreach($Countries["Data"] as $Country) 
    <tr class="odd pointer"> 
     <td class=" ">{{$Country["Country"]}}</td> 
     <td class=" ">{{$Country["CountryCode"]}}</td> 
    </tr> 
@endforeach 

私はecho $Countries;を入力すると、私はテキストの上取得することです。私がecho json_decode($Countries, true);と入力すると、それは空白になります。なぜこれが起こっているのか教えてください。

理由以下のコードを使用してデータがBladeに渡されているため、この処理を行っています。

$Countries = (new \App\DataAccess\CountryData())->GetCountries(); 
return view('Country.List')->with('Countries', json_decode($Countries)); 
+0

だから、正確に何を達成したいですか? –

+0

Blendのレコードのリストを表示するためにJson Dataを読んでいます。 – Pankaj

答えて

1

以下コントローラのコードのようになります。

return view('Country.List')->with('Countries', $Countries->getData()->Data); 
                  ^^^^^^^^^^^^^^^ 

しかし、これが正しいかどうか私はわかりませんこれを修正する方法 問題。私はJsonResponseを読んでいます。

0

json_decode($ data、true)関数にtrueを追加する必要があります。この

$Countries = (new \App\DataAccess\CountryData())->GetCountries(); 
return view('Country.List')->with('Countries', json_decode($Countries)); 

変更

$Countries = (new \App\DataAccess\CountryData())->GetCountries(); 
return view('Country.List')->with('Countries', json_decode($Countries,true)); 

に表示

@foreach($Countries["Data"] as $Country) 
    <tr class="odd pointer"> 
     <td class=" ">{{$Country["Country"]}}</td> 
     <td class=" ">{{$Country["CountryCode"]}}</td> 
    </tr> 
@endforeach 
を変更
関連する問題