2017-06-13 40 views
1

越來越多值我有Collection這樣照亮支持收集和勇氣

[ 
    { 
     "user_id":1, 
     "chat_id":1, 
     "chat_hidden":0, 
     "access_time":"2017-06-10 00:28:11", 
     "name":"Dr. Harley Raynor", 
     "image_url":null 
    }, 
    { 
     "user_id":1, 
     "chat_id":2, 
     "chat_hidden":1, 
     "access_time":"2017-06-12 10:59:37", 
     "name":"Dr. Harley Raynor", 
     "image_url":null 
    } 
    ] 

如果我想只有user_id從中取,格式陣列這樣

[ 
    { 
     "user_id":1 
    }, 
    { 
     "user_id":1 
    } 
    ] 

我寫Collection()->pluck('user_id')和一切正常,但如果我需要採取幾個項目呢?像user_idchat_id?我試過->pluck('user_id', 'chat_id'),->pluck(['user_id', 'chat_id'])和​​似乎沒有任何工作。

+1

Pluck只適用於1個項目,不幸的是 – Derek

+2

是的,如果這是檢索後,你可能會想使用'map()'。 –

+1

如果它沒有檢索後,你可以使用'only()'或'select()' – Derek

回答

0

只需使用map;

$myCollection->map(function($item) { 
    return [ 
     'user_id' => $item->user_id, 
     .... 
    ]; 
}); 

但是,如果你正在建立一個API,我強烈建議你使用某種變壓器等https://github.com/spatie/laravel-fractal以處理未來隨着業務的成熟包容和排斥的。