json - 如何通过 laravel 将我返回的数据格式化为特定格式
问题描述
public function autoComplete(Request $request) {
$keywords = $request->keywords;
$phones = [];
$results = Phone::where('number', 'LIKE', '%' . $keywords . '%')->get();
if ($results) {
foreach ($results AS $phone) {
$phones[] = [
'id' => $phone->id,
'text' => $phone->number,
];
}
}
return json_encode($phones);
}
上一个方法返回以下 JSON 格式
[["01111111111"],["01222222222"],["03333333333"],["04444444444"]]
但我想要这样
{"suggestions":["01111111111", "01222222222", "03333333333", "04444444444"]}
我试图像这样返回
return json_encode('suggestions:', $phones);
解决方案
要返回该特定格式,您可以使用集合的 map 方法检查此链接
所以我会给出这个简短的解决方案,在这里我们将改变你foreach
的map function
为此,您的autoComplete
功能将是这样的:
public function autoComplete(Request $request) {
$keywords = $request->keywords;
$results = Phone::where('number', 'LIKE', '%' . $keywords . '%')->get();
if ($results) {
$phones = $results->map(function($phone) {
return [
'id' => $phone->id,
'text' => $phone->number,
];
});
}
return response()->json(['suggestions' => $phones], 201);
}
我们返回201 http code
以证明请求已成功创建。
推荐阅读
- javascript - Node.js - 解压缩并上传到 GCS 时获取空文件
- python - 给定一个字符串,如何用每个重复的字母生成一个新字符串?
- amazon-ec2 - 在 Ubuntu LTS 16.04 上安装 Magento 2 时,我遇到了一些不同的错误
- wordpress - MemberPress 退款后删除课程访问权限
- sql-server - 在 SSIS 数据分析中分析空字符串
- android - NativeScript 锁定(或信息亭)应用程序
- ios - 何时请求 Health Kit 许可请求
- asp.net - EF 在尝试创建新数据库时未创建身份表
- c++ - 无法让 gcc 为方法生成矢量化/霓虹灯指令
- c# - 无法使用客户端凭据获取 facebook 访问令牌,但它适用于我的凭据