From b92e5a214f9e9a31264726b6108069661f9c31fd Mon Sep 17 00:00:00 2001 From: Tariq Hussein Date: Wed, 8 Jan 2020 21:02:28 +0000 Subject: [PATCH] Replaced whereExists/whereNotExists with whereIn/whereNotIn (#22) --- .../src/Gambit/SubscriptionGambit.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/extensions/subscriptions/src/Gambit/SubscriptionGambit.php b/extensions/subscriptions/src/Gambit/SubscriptionGambit.php index df848734f..657af1662 100644 --- a/extensions/subscriptions/src/Gambit/SubscriptionGambit.php +++ b/extensions/subscriptions/src/Gambit/SubscriptionGambit.php @@ -26,14 +26,12 @@ class SubscriptionGambit extends AbstractRegexGambit { $actor = $search->getActor(); - // might be better as `id IN (subquery)`? - $method = $negate ? 'whereNotExists' : 'whereExists'; - $search->getQuery()->$method(function ($query) use ($actor, $matches) { - $query->selectRaw('1') - ->from('discussion_user') - ->whereColumn('discussions.id', 'discussion_id') - ->where('user_id', $actor->id) - ->where('subscription', $matches[1] === 'follow' ? 'follow' : 'ignore'); + $method = $negate ? 'whereNotIn' : 'whereIn'; + $search->getQuery()->$method('id', function ($query) use ($actor, $matches) { + $query->select('discussion_id') + ->from('discussion_user') + ->where('user_id', $actor->id) + ->where('subscription', $matches[1] === 'follow' ? 'follow' : 'ignore'); }); } }