更改下拉列表的laravel集合格式

时间:2016-05-13 22:06:46

标签: laravel data-structures collections toarray

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

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

所以,这会让我[1 => ' elt1',2 => ' elt2']等

我需要的是将其转换为:

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

这是一种方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用自定义toCustomArray方法编写自己的集合类。

class YourCollection extends \Illuminate\Database\Eloquent\Collection {
   public function toCustomArray() {
      // Your own implementation goes here. 
   }
}

之后刷新缓存。现在你可以做到:

Federation::pluck('name', 'id')->toCustomArray();

<强> TL; DR

自Laravel 5.2以来,不推荐使用lists方法。相反,请使用pluck()方法,之后可选择使用toArray()

答案 1 :(得分:0)

也许你可以通过集合进行映射并对其进行操作

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

$json = json_encode($array);