2016-03-26 12 views
3

Unten ist die Klasse, die Länderdaten liefertSenden JSON Daten von Controller Blade anzeigen: Laravel 5.2

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

ich habe folgende JSON-Daten über Funktion

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

Unten ist der Code in Controller.

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

Unten ist der Code in Ansicht

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

Wenn ich echo $Countries; Typ I obigen Text erhalten. Wenn ich echo json_decode($Countries, true); tippe, zeigt es leer an. Kannst du mir bitte sagen, warum das passiert?

Grund Ich mache das, weil Daten in Blade unter Verwendung von unten Code übergeben werden.

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

Also, was genau wollen Sie erreichen? –

+0

Ich möchte Json Daten lesen, um die Liste der Datensätze in Blade anzuzeigen. – Pankaj

Antwort

1

Im Folgenden soll der Controller-Code sein:

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

Aber ich bin nicht sicher, ob dies richtig ist Möglichkeit, dies zu beheben Problem. Ich lese JsonResponse.

0

Sie müssen in der Funktion json_decode ($ data, true) true hinzufügen. diese

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

Wechsel zu

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

Ansicht

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