Json 如何将laravel返回的数据格式化为特定格式
前面的方法返回以下JSON格式Json 如何将laravel返回的数据格式化为特定格式,json,laravel-5,Json,Laravel 5,前面的方法返回以下JSON格式 public function autoComplete(Request $request) { $keywords = $request->keywords; $phones = []; $results = Phone::where('number', 'LIKE', '%' . $keywords . '%')->get(); if ($results) { foreach ($results A
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);
}
但我想要这样
[["01111111111"],["01222222222"],["03333333333"],["04444444444"]]
{"suggestions":["01111111111", "01222222222", "03333333333", "04444444444"]}
我试着这样做
[["01111111111"],["01222222222"],["03333333333"],["04444444444"]]
{"suggestions":["01111111111", "01222222222", "03333333333", "04444444444"]}
要返回该特定格式,可以使用 因此,我将给出这个简短的解决方案,这里我们将通过
映射函数更改您的foreach
因此,您的自动完成
功能如下:
return json_encode('suggestions:', $phones);
我们返回201 http code
以证明请求已成功创建。如果此方法位于控制器中,只需返回一个数组,即:
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);
}
Laravel将以JSON的形式返回它