【问题标题】:How to get json data in blade laravel如何在刀片 laravel 中获取 json 数据
【发布时间】:2021-05-10 14:52:12
【问题描述】:

在刀片模板中:

<?php
      $meta = json_encode($datas,true);   
      echo $meta;
?>

它显示:

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

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

" 它显示了;

"Illegal string offset 'meta'"

谁能帮忙,非常感谢

【问题讨论】:

  • 你为什么要编码$data?可以从数据数组中获取
  • 这能回答你的问题吗? Access PHP array element
  • var_dump(data); 看到的是数组还是对象。然后相应地访问这些元素/成员。

标签: php json laravel view laravel-blade


【解决方案1】:

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

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

现在您以 $meta['meta']; 访问数组属性

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

【讨论】:

  • 感谢您在我使用 "echo $meta['meta'];" 时的回答和帮助它显示为空,因为您看到元数据有一些数据。
  • dd($datas); 的输出是什么?
  • SongsCollection {#198 ▼ +collects: null +collection: Collection {#208 ▼ #items: array:5 [▶] } +resource: LengthAwarePaginator {#204 ▶} +with: [] +附加:array:1 [▼ "meta" => array:1 [▶] ] }
  • "meta":{"song_count":5} 在"+resource"下,我需要访问resource中的meta。
  • 能否分享一下输出的截图dd($datas);
【解决方案2】:

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

【讨论】:

  • 谢谢 Mohamed,它显示为空:$datas['meta']['song_count']。
  • 使用 :- dd($datas, $datas['meta']) 的结果是什么??
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 2021-01-13
    • 2020-10-10
    • 2019-02-22
    • 2016-12-24
    • 2017-09-04
    • 2021-05-15
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    相关资源
    最近更新 更多