Laravel如何将对象返回为没有键的JSON数组数据类型
Posted
技术标签:
【中文标题】Laravel如何将对象返回为没有键的JSON数组数据类型【英文标题】:Laravel how to return object into JSON Arrays data type without keys 【发布时间】:2020-08-25 15:45:42 【问题描述】:我在控制器中有这样的数据库查询:
$query = User::all('id','name','email')->take(2);
$users = ["data" => $query];
return $users;
并得到结果:
"data": [
"id": 1,
"name": "Peter",
"email": "peter@peter.com"
,
"id": 2,
"name": "John",
"email": "john@john.com"
]
但我希望得到没有像这样的键的 JSON 数组数据类型:
"data": [
[
"1",
"Peter",
"peter@peter.com"
],
[
"2",
"John",
"john@john.com"
]
]
我需要为远程域的 DataTables JSONP 数据源获取此类型。
https://datatables.net/examples/server_side/jsonp.html
如何做到这一点?
谢谢。
【问题讨论】:
【参考方案1】:你可以像这样尝试array_values
:
$query = User::all('id', 'name', 'email')->take(2);
$users = ["data" => $query->map(function (User $user)
return array_values($user->attributesToArray());
)];
return $users;
【讨论】:
好极了。现在我的“数据表服务器端处理”集成应该很容易了。竖起大拇指 Uzair Riaz。 很高兴我能帮上忙!【参考方案2】:这样的事情怎么样?
$query = User::all('id', 'name', 'email')->take(2);
$userValues = $query->map(function($item, $key)
return [
$item['id'],
$item['name'],
$item['email']
];
)
$users = ["data" => $userValues];
return $users;
// result
"data": [
[
1,
"Amy Wilderman",
"vrau@example.net",
],
[
2,
"Bria Lindgren PhD",
"trevor.armstrong@example.org",
],
]
【讨论】:
以上是关于Laravel如何将对象返回为没有键的JSON数组数据类型的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Laravel response()->json() 返回空对象而不是空数组