У меня есть User и UserComplains Models. Мне нравится получать пользователей, у которых UserComplains более 2 раз за последние 24 часа.
users:
id
user_complains:
complained_id ->ref-> users.id
created_at
это то, что я пытался, и это работает:
$users = User::select('users.*')->join('user_complains' , 'users.id' , '=' , 'user_complains.complained_id')
->whereRaw("(
select count(*) from `user_complains`
where `user_complains`.`complained_id` = `users`.`id`
and `user_complains`.`created_at` > ?) >= ?" , [now()->subHours(24), 2])
->groupBy("users.id")
->get();
приведенный выше код хорошо и работает, но мне интересно, есть ли лучший способ сделать это?!