From 98ebc9d293c57da973a09d9b6660551345458967 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Sat, 29 Aug 2015 23:02:00 +0200 Subject: [PATCH] Make sure query filter works with database prefix, too Related to flarum/core#269. --- src/Listeners/PinStickiedDiscussionsToTop.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Listeners/PinStickiedDiscussionsToTop.php b/src/Listeners/PinStickiedDiscussionsToTop.php index 5e88cf5..cde0d25 100755 --- a/src/Listeners/PinStickiedDiscussionsToTop.php +++ b/src/Listeners/PinStickiedDiscussionsToTop.php @@ -39,10 +39,15 @@ public function reorderSearch(DiscussionSearchWillBePerformed $event) ->where('discussions.is_sticky', '=', true) ->where('users_discussions.user_id', '=', $event->search->getActor()->id); }); + // might be quicker to do a subquery in the order clause than a join? + $prefix = app('Illuminate\Database\ConnectionInterface')->getTablePrefix(); array_unshift( $query->orders, - ['type' => 'raw', 'sql' => '(is_sticky AND (users_discussions.read_number IS NULL OR discussions.last_post_number > users_discussions.read_number)) desc'] + [ + 'type' => 'raw', + 'sql' => "(is_sticky AND ({$prefix}users_discussions.read_number IS NULL OR {$prefix}discussions.last_post_number > {$prefix}users_discussions.read_number)) desc" + ] ); } }