【问题标题】:Send JSON Data from Controller to View in Blade: Laravel 5.2将 JSON 数据从控制器发送到 Blade 中的视图:Laravel 5.2
【发布时间】:2016-07-14 05:22:56
【问题描述】:

下面是返回 Country 数据的类

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

我有以下函数返回的 Json 数据

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

以下是Controller中的代码。

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

下面是View中的代码

@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));

【问题讨论】:

  • 那么,你到底想达到什么目标?
  • 我想读取 Json 数据以显示 Blade 中的记录列表。

标签: php json laravel laravel-5.1 laravel-5.2


【解决方案1】:

需要在 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

【讨论】:

    【解决方案2】:

    下面应该是控制器代码:

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

    但我不确定这是否是解决此问题的正确方法。我正在阅读JsonResponse

    【讨论】:

      猜你喜欢
      • 2020-03-24
      • 2021-04-07
      • 2020-08-26
      • 2019-11-13
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 2018-01-05
      • 1970-01-01
      相关资源
      最近更新 更多