有没有办法(重新)使用其内容的索引来映射Laravel Collections?

and*_*79h 2 php mapping collections laravel pluck

我有一些通讯:

$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->get();
Run Code Online (Sandbox Code Playgroud)

这个集合的结果如下:

在此输入图像描述

我尝试使用pluck,但它只允许一列:

$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->pluck('media', 'id');

在此输入图像描述

我试图实现的目标是这样的(请原谅我的悲伤油漆技巧:D) 在此输入图像描述

在某种程度上,就像->pluck('*', 'id').现在我不得不预先处理每个集合,这对我来说似乎不对.

谢谢你的帮助!

Mar*_*łek 5

您可以使用keyBy方法:

$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->get()->keyBy('id');
Run Code Online (Sandbox Code Playgroud)