2017-05-07 144 views
0

我:獲得所有項目的集合mapWithKeys

$collection=Event::all(); 
$keyed = $collection->mapWithKeys(function ($item) { 
       return ['title' => $item['name'], 'start' => $item['event_date']]; 
    }); 

$keyed->all()被收集在改變鍵只返回最後一個項目:

Array 
(
    [title] => New Year 
    [start] => 2018-01-01 
) 

我如何獲得與改變按鍵的所有活動?

+0

怎麼辦如果將'dd($ collection-> toArray());''放在'$ collection = Event :: all();'後面? – whoacowboy

+0

@whoacowboy'dd($ collection-> toArray());'given給出'array:3 [▼ 0 => array:5 [▼ 「id」=> 1 「name」=>「Parent's Day」 「event_date」=>「2018-02-14」 ] 1 => array:5 [▼ 「id」=> 2 「name」=>「Labor's Day \ n」 「event_date」=>「2018 -05-01" ] 2 =>數組:5 [▼ 「ID」=> 3 「名稱」=> 「新年」 「EVENT_DATE」=> 「2018年1月1日」 ] ] '而'dd($ keyed-> toArray());'只給出最後一個事件。 – Steve

回答

1

mapWithKeys回調返回一個關聯數組conaining一個鍵/值對,所以如果你只需要EVENT_DATE我建議採摘使用這樣的:

$collection=Event::pluck('event_date', 'name'); 
+0

我需要'title'和'start'作爲數組鍵,而不是'name'和'event_date'屬性。 – Steve

+0

$ array = Event :: select('name as title','event_date as start') - > pluck('name','start'); – MohamedSabil83

相關問題