2016-05-13 55 views
0

隨着Laravel,我生成我喜歡那個對象的列表:改變laravel收集格式下拉

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

所以,這將返回我[1 => 'ELT1',2 => 'ELT2'],等

我需要的是把它轉換爲:

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

是一個辦法做到這一點?

回答

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()

0

也許你可以通過收集地圖和操縱它

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

$json = json_encode($array);