我遇到了将多个JSON对象合并到Laravel Eloquent集合中的问题。
当我运行以下代码时:
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"
}
这让我发疯了。是否有人可以协助我如何实现这一目标? 这里的关键并不重要。
答案 0 :(得分:2)
使用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" }
如果要返回JSON响应
$projects = (object) $projects->pluck('name')->toArray()
return response()->json($projects);
答案 1 :(得分:0)
只需定义一个新数组,插入您想要的任何值。
假设您的JSON对象名为$ data;
$result = array();
foreach($data as $us){
array_push($result, $us['name']);
}
$result = json_encode($result, JSON_FORCE_OBJECT);