Я бы использовал ::whereIn
-метод, где вы можете предоставить массив идентификаторов и получить всех пользователей с предоставленными идентификаторами.
Сначала вам нужно будет переформатировать массив $orders
, который вы иметь так, что он содержит только идентификаторы пользователей. Я предполагаю, что вы используете Eloquent для извлечения заказов, тогда вы можете использовать функцию pluck в своем выражении Eloquent:
$userIds = Order::where('statement', true)->pluck('user_id')->toArray();
Обратите внимание, что выражение where не является реальным, я просто хочу чтобы проиллюстрировать, как вы можете вызвать метод pluck.
Другая альтернатива состоит в том, что вы используете функцию map в коллекции $orders
и возвращаете только идентификаторы пользователя:
$userIds = $orders->map(function ($order) {
return $order->user_id;
});
Как только вы Имея свои идентификаторы пользователей в массиве / коллекции, вы можете использовать их в выражении whereIn:
$users = Users::whereIn('id', $userIds)->get();
Тогда это даст вам всех пользователей, которые связаны с заказами, которые есть в вашей коллекции заказов. .