有没有办法(重新)映射 Laravel 集合及其内容的索引?
Is there a way to (re)map Laravel Collections with an index from its content?
我有一些时事通讯:
$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->get();
此集合中的结果:
我尝试使用 pluck,但它只允许一列:
$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->pluck('media', 'id');
我想达到的目标是这样的(请原谅我悲伤的油漆车间技巧z :D)
在某种程度上,这就像 ->pluck('*', 'id')
。现在我不得不 foreach 每个集合,这对我来说似乎不正确。
感谢您的帮助!
您可以使用keyBy方法:
$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->get()->keyBy('id');
我有一些时事通讯:
$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->get();
此集合中的结果:
我尝试使用 pluck,但它只允许一列:
$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->pluck('media', 'id');
我想达到的目标是这样的(请原谅我悲伤的油漆车间技巧z :D)
在某种程度上,这就像 ->pluck('*', 'id')
。现在我不得不 foreach 每个集合,这对我来说似乎不正确。
感谢您的帮助!
您可以使用keyBy方法:
$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->get()->keyBy('id');