首页 > 解决方案 > 从 Laravel Eloquent 响应中格式化 JSON

问题描述

我收到了 Eloquent 的回复,我需要完全按照以下方式对其进行格式化:

{
    name: "James",
    data: {
      "2017-01-01 00:00:00": 300,
      "2017-01-02 00:00:00": 600,
    }
  },

我得到的当前响应是:

{
name: "James",
date: "2017-01-01 00:00:00",
amount: "300"
},
{
name: "James",
date: "2017-01-02 00:00:00",
amount: "600"
},

我已经绑定了这个,但格式不正确:

 $chartData = [];

    foreach($charts as $chart){

        array_push($chartData, [
            'name' => $chart->name,
            'data' => json_encode([$chart->date. ':' .$chart->amount], true)
        ]);

    }

结果是:

{
name: "James",
data: "{"2017-01-01T00:00:00.000000Z":"300"}"
},
{
name: "James",
data: "{"2017-01-02T00:00:00.000000Z":"600"}"
},

谢谢

标签: jsonlaravel-5eloquent

解决方案


你可以这样做:

$chartData = [];

foreach($charts as $chart){

    array_push($chartData, [
        'name' => $chart->name,
        'data' => $chart->date. ':' .$chart->amount
    ]);

}

json_encode($chartData);


推荐阅读