Получить идентификаторы из БД в Laravel

Могу ли я упростить этот код без foreach?

$userQuestIds = [2,4,45,586,16,2,143,234,654,78,56];

$typeQuests = [];
foreach ($userQuestIds as $qId) {
    $typeQuests[] = Quest::where(['id' => $qId])->first();
}
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
58
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

$typeQuests = Quest::whereIn('id', $userQuestIds)->get();

ПРИМЕЧАНИЕ. Этот подход лучше подходит для столбцов, отличных от id (как основного). Я думаю, что решение @andriy-Lozynskiy - лучший способ.

Ответ принят как подходящий

Если id является первичным ключом, кратчайший путь:

$typeQuests = Quest::find($userQuestIds);

Это самый простой и лучший способ.

Rouhollah Mazarei 21.11.2022 13:46

Вы можете использовать метод whereIn() в классе QueryBuilder

$userQuestIds = [2,4,45,586,16,2,143,234,654,78,56];
$typeQuests = Quest::whereIn('id', $userQuestIds)->get();

Другие вопросы по теме