如何在blade laravel中获取json数据

问题描述

在刀片模板中:

<?PHP
      $Meta = json_encode($datas,true);   
      echo $Meta;
?>

显示

{"data":[{"id":1,"title":"Alice.","rating":0},{"id":2,"title":"So Alice.","rating":2},{"id":3,{"id":4,"title":"After a.",{"id":5,"rating":0}],"Meta":{"song_count":5}}

我的问题是如何在刀片模板中获取 (song_count: 5 )。 我努力了 : echo $Meta['Meta'];

" 它显示;

"Illegal string offset 'Meta'"

谁可以帮忙,非常感谢

解决方法

json_encode() 方法给你一个 json 格式的数据。你需要解码它:

$meta = json_encode($datas,true);   
$meta = json_decode($meta,true);
echo $meta;

现在您可以将数组属性作为 $meta['meta'];

注意:如果 $datas 已经是一个数组,那么你不需要编码和解码

,

这意味着您尝试从字符串中获取元键,因为 $meta 是 json 而不是数组,因此您不需要 json_encode $data ,您可以直接进行 :- $datas['meta']['song_count'] 如果 $data 是 array 。但这可能会给你错误,如果 $datas 为空来解决这个问题,你可以检查 $data !empty 或在 laravel 中使用可选方法,如下所示:- optional($datas['meta'])['song_count'] 它解决了问题。

,

将来自控制器的json数据的值显示为bwlow的步骤:

<?php
$datas = json_encode($datas,true);
 //dd($data);
$datas = json_decode($datas);
// dd($datas);
foreach($datas->meta as $link){
 echo $link;
}
?>