Есть ли способ (пере) сопоставить Коллекции Laravel с индексом из его содержимого?

У меня есть несколько новостных рассылок:

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

Какой результат в этой коллекции:

Я пытался использовать pluck, но он позволяет только один столбец:

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

Чего я пытаюсь добиться, так это (извините, мой печальный мастерство покраски:D)

В некотором смысле, это как ->pluck('*', 'id'), На данный момент я должен был проповедовать каждую коллекцию, и это не кажется мне правильным.

Спасибо за вашу помощь!

1 ответ

Решение

Вы можете использовать метод keyBy:

$newsletters = $channel->Newsletter()->whereIn('id', $wantNewsletters)->get()->keyBy('id');
Другие вопросы по тегам