Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

muhammedsellu333's avatar

Multiple Find Query in single database connection

$departments = [];

foreach ([1, 2, 3, 4, 5, 6, 7] as $department) {
    array_push($departments, Department::find($department));
}

return $departments;

How can I make all these multiple query on a single database connection for better performance?

0 likes
6 replies
tykus's avatar

Remember to execute the query @aurawindsurfing ;)

$departments = Departments::whereIn('id', [1,2,3,4,5,6,7])->get();
1 like
kima's avatar
kima
Best Answer
Level 2

find function is able to receive an array in the $id argument:

$departments = Department::find([1, 2, 3, 4, 5, 6, 7])
muhammedsellu333's avatar

Thanks loads.

$departments = Departments::whereIn('id', [1,2,3,4,5,6,7])->get();

aurawindsurfing's avatar

@kima find uses behind scenes whereIn 😀

If $key is an array of keys, find will return all models which match the $keys using whereIn()

Please or to participate in this conversation.