Make sure query filter works with database prefix, too

Related to flarum/core#269.
This commit is contained in:
Franz Liedke 2015-08-29 23:02:00 +02:00
parent 05c7438396
commit a90dfd686a

View File

@ -39,10 +39,15 @@ class PinStickiedDiscussionsToTop
->where('discussions.is_sticky', '=', true) ->where('discussions.is_sticky', '=', true)
->where('users_discussions.user_id', '=', $event->search->getActor()->id); ->where('users_discussions.user_id', '=', $event->search->getActor()->id);
}); });
// might be quicker to do a subquery in the order clause than a join? // might be quicker to do a subquery in the order clause than a join?
$prefix = app('Illuminate\Database\ConnectionInterface')->getTablePrefix();
array_unshift( array_unshift(
$query->orders, $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"
]
); );
} }
} }