0
我在構建的應用程序中實現導出功能。轉換集合以僅替換一些值
導出過程獲取模型值的集合,然後將其導出到下載到客戶端的電子表格中。
在我的模型上,我有一個user_id
和responsibility
。這兩個字段都包含一個映射回我的用戶表的ID(通常是兩個不同的用戶)。
在導出過程中,我想將user_id
和responsibility
值替換爲實際用戶的名稱,而不是其用戶ID。
map()
和transform()
似乎是正確的方法來實現我所追求的,但我看不到一個優雅的方式來實現我想要的。
這是我到目前爲止有:
$forms = Form::where('created_at', '>=', (new Carbon('first day of last month'))->toDateString())
->where('created_at', '<=', (new Carbon('last day of last month'))->toDateString())
->get();
$forms->transform(function($form) {
return [
'responsibility' => is_null($form->responsibility) ? $form->responsibility : $form->personResponsible->name,
'user_id' => $form->user->name
];
});
然而,這只是返回集合中responsibility
和user_id
- 而不是僅僅更新這些值。
現在,我可以只包括返回數組中的其餘列,但這似乎沒有必要 - 當然有更好的方法來做到這一點。
如何將我的模型集合中的兩個值與用戶名最有效地替換?
現在你把它像看起來那麼簡單! – James