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