使用 Laravel,我会生成这样的对象列表:
return Federation::lists('name','id');
所以,这返回了我 [1 => 'elt1', 2 => 'elt2'] 等
我需要的是将其转换为:
[{value => 1, text => 'elt1'},{value => 2, text => 'elt2'}]
这是一种方法吗?
使用 Laravel,我会生成这样的对象列表:
return Federation::lists('name','id');
所以,这返回了我 [1 => 'elt1', 2 => 'elt2'] 等
我需要的是将其转换为:
[{value => 1, text => 'elt1'},{value => 2, text => 'elt2'}]
这是一种方法吗?
您可能可以编写自己的集合类,其中包含自定义toCustomArray
方法。
class YourCollection extends \Illuminate\Database\Eloquent\Collection {
public function toCustomArray() {
// Your own implementation goes here.
}
}
之后刷新缓存。现在您可以执行以下操作:
Federation::pluck('name', 'id')->toCustomArray();
TL;博士
lists
自 Laravel 5.2 起,该方法已被弃用。请改为使用该pluck()
方法,toArray()
之后可以选择使用 a。
也许您可以映射集合并对其进行操作
$array = $collection->map(function($item){
return ["value" => $item->id, "text" => $item->name];
});
$json = json_encode($array);