Bar*_* D. 1 php arrays laravel pluck
我有一行类似于以下的代码:
Sport::pluck('id', 'name)
Run Code Online (Sandbox Code Playgroud)
我正在处理需要以下格式列表的前端 JavaScript:
var list = [
{ text: 'Football', value: 1 },
{ text: 'Basketball', value: 2 },
{ text: 'Volleyball', value: 3 }
...
]
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚如何将我从模型中提取的id和name值转换为类似于 Javascript 的格式list。
如果不清楚,我期待与含有两个键的关联数组来结束:text和value,其中text代表name我的模型现场,并在value代表id模型-我希望这是有道理的。
我将如何处理这个问题?
我最初尝试过这样的事情(没有检查文档)
Sport::pluck(["id" => "value", "name" => "text]);
Run Code Online (Sandbox Code Playgroud)
但这不是你这样做的方式,现在已经很清楚了。我还尝试了一些与地图相关的片段,但我似乎无法使用 Ctrl-z。
有什么建议?
小智 7
另一种方法是使用map->only():
Sport::all()->map->only('id', 'name');
Run Code Online (Sandbox Code Playgroud)
您可以使用地图。(https://laravel.com/docs/5.8/collections#method-map)
$mapped = Sport::all()->map(function($item, $index) {
return [
"id" => $item["id"],
"name" => $item["text"]
];
});
Run Code Online (Sandbox Code Playgroud)
这是最简单的方法。实际上 Laravel 提供了一种更好的方法。您可以使用 api 资源将 eloquent 中的数据转换为前端: https: //laravel.com/docs/5.8/eloquent-resources
| 归档时间: |
|
| 查看次数: |
12878 次 |
| 最近记录: |