0

使用 Laravel,我会生成这样的对象列表:

return Federation::lists('name','id');

所以,这返回了我 [1 => 'elt1', 2 => 'elt2'] 等

我需要的是将其转换为:

[{value => 1, text => 'elt1'},{value => 2, text => 'elt2'}]

这是一种方法吗?

4

2 回答 2

1

您可能可以编写自己的集合类,其中包含自定义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。

于 2016-05-13T22:27:41.210 回答
0

也许您可以映射集合并对其进行操作

$array = $collection->map(function($item){
    return ["value" => $item->id, "text" => $item->name];
});

$json = json_encode($array);
于 2016-05-14T00:14:14.920 回答