Я делал запрос, чтобы вернуть всех тех людей, которые ответили на все вопросы в определенном блоке. Мне удалось получить всех пользователей, которые ответили так:
public function getUsers()
{
$question_ids = $this->questions->pluck('id');
return User::query()->whereHas('question_answers', function ($query) use ($question_ids) {
$query->whereIn('question_id', $question_ids);
})->get();
}
И у меня есть функция, чтобы проверить, ответил ли определенный пользователь на все вопросы в определенном блоке.
public function hasAnsweredAll(User $user)
{
return (boolean) ($this->questions->count() == $user->question_answers()->whereHas('question', function($query){
$query->where('question_block_id', $this->id);
})->count());
}
Теперь я получаю пользователей, которых хочу: как-то с помощью foreach? Я искал net в течение нескольких часов, но не повезло, поэтому любая помощь приветствуется.