将多个 JSON 对象合并到 Laravel Eloquent 集合中的单个对象

Merge multiple JSON object into a single in Laravel Eloquent collection

我在使用 Laravel Eloquent 集合将多个 JSON 对象合并为一个对象时遇到问题。

当我运行以下代码时:

return Project::all();

我知道了:

[
    {
        "created_at": "2016-02-17 15:08:11",
        "description": "first description",
        "id": 1,
        "name": "John Doe",
        "updated_at": "2016-02-17 15:08:11"
    },
    {
        "created_at": "2016-02-17 15:08:31",
        "description": "second description",
        "id": 2,
        "name": "Jane Doe",
        "updated_at": "2016-02-17 15:08:31"
    }
]

但是,我正在尝试将这个多个 JSON 对象合并为一个对象,如下所示:

{
    "0": "John Doe",
    "1": "Jane Doe"
}

这让我发疯。有没有人可以帮助我如何实现这一目标? 这里关键不重要

使用Collection::pluck():

$projects = Project::all();
$projects = $projects->pluck('name')->toJson();

// [ "John Doe", "Jane Doe" ]

如果你想让它成为一个对象,像这样转换它

(object) $projects->pluck('name')->toArray()

// { "0": "John Doe", "1": "Jane Doe" }

如果您想 return 一个 JSON 响应

$projects = (object) $projects->pluck('name')->toArray()
return response()->json($projects);

只需定义一个新数组并插入您想要的任何值。

假设您的 JSON 对象名为 $data;

    $result = array();
    foreach($data as $us){
      array_push($result, $us['name']);
    }
    $result = json_encode($result, JSON_FORCE_OBJECT);