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('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"
]
);
}
}