Laravel:如何在视图刀片中解析此json数据?

时间:2016-05-29 09:31:36

标签: php json laravel blade

我有这样的JSon数据:

[{label":a, "value":{"name":"abc","address"="New York"}}]

我用

打印json成功了
{!! $mydata !!}

但是当我尝试使用foreach时

@foreach($mydata['value'] as $value)
    Member ID: {{ $value['name'] }}   
@endforeach

laravel返回

ErrorException in Collection.php line 1108: Undefined index:value

我已经跟着这个:Laravel: How do I parse this json data in view blade?

任何人都可以提供帮助吗?

注意:JSON和Variable不是真正的我的。我改变它是为了简单。

编辑:

添加{{ dd(json_decode($tagihan, true)) }}并返回

Result after added {{ dd(json_decode($tagihan, true)) }}

编辑:

这是我的JSON:

array:5 [▼
  0 => array:7 [▼
    "id" => 8
    "no_rek_pelanggan" => 11115
    "keadaan_meteran" => 0
    "angka_meteran" => 3000
    "created_at" => "2016-05-28 15:28:17"
    "updated_at" => "2016-05-28 15:28:17"
    "all_pelanggan" => array:7 [▼
      "no_rek" => 11115
      "nama" => "Wicak"
      "alamat" => "Malang"
      "long" => 112.6153447
      "lat" => -7.9528411
      "created_at" => "2016-05-26 00:00:00"
      "updated_at" => "2016-05-26 05:00:00"
    ]
  ]

我想在all_pelanggan中读取nama,alamat,long,lat中的值。我怎么做到的?

4 个答案:

答案 0 :(得分:4)

如果您确实想在视图中使用json编码数据,请在foreach中使用json_decode()

@foreach(json_decode($mydata, true) as $value)
    Member ID: {{ $value['all_pelanggan']['name'] }}   
@endforeach

答案 1 :(得分:1)

您没有按照提供的问题进行操作。如上所述,你应该在控制器中解码你的json:

return view('your-view')->with('mydata', json_decode($mydata, true));

答案 2 :(得分:0)

首先,你有一个JSON数组。但是您正在尝试获取JSON对象。 如果您确定只有一个对象,则在控制器Model::<selection-criteria>->first();中使用它,以便它返回一个JSON对象。然后&#34;你的foreach&#34;将来工作。

如果您不确定只有一个对象或将来会有更多对象,那么请保留您的选择语句(最后有->get())。所以它将返回一个数组。

现在修改你的foreach以获取该数组。那就是你的数据集是一个数组,每个元素都是带有子对象的JSON对象。

@foreach($mydata as $myDatum)
    @foreach($myDatum as $val)
        Object label: {{ $val['label'] }}
        Member Name: {{ $val['value']->name }}
        Member Address: {{ $val['value']->address }}
    @endforeach
@endforeach

答案 3 :(得分:0)

请你试试以下

@for ($i = 0; $i < count($myData); $i++)
   Member ID: {{ $myData[i]['value'] }}
@endfor

我希望有效。