1
0
mirror of https://github.com/flarum/core.git synced 2025-08-21 15:52:44 +02:00

Use *Raw methods instead of Expression

This commit is contained in:
Toby Zerner
2018-01-11 12:32:09 +10:30
parent 608e42e616
commit 60845eeee7
4 changed files with 10 additions and 13 deletions

View File

@@ -92,10 +92,10 @@ class DiscussionPolicy extends AbstractPolicy
{
// Hide discussions which have tags that the user is not allowed to see.
$query->whereNotExists(function ($query) use ($actor) {
return $query->select(new Expression(1))
return $query->selectRaw('1')
->from('discussions_tags')
->whereIn('tag_id', Tag::getIdsWhereCannot($actor, 'viewDiscussions'))
->where('discussions.id', new Expression('discussion_id'));
->whereRaw('discussions.id = discussion_id');
});
// Hide discussions with no tags if the user doesn't have that global

View File

@@ -16,7 +16,6 @@ use Flarum\Tags\Tag;
use Flarum\User\AbstractPolicy;
use Flarum\User\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Query\Expression;
class FlagPolicy extends AbstractPolicy
{
@@ -36,10 +35,10 @@ class FlagPolicy extends AbstractPolicy
->leftJoin('posts', 'posts.id', '=', 'flags.post_id')
->leftJoin('discussions', 'discussions.id', '=', 'posts.discussion_id')
->whereNotExists(function ($query) use ($actor) {
return $query->select(new Expression(1))
return $query->selectRaw('1')
->from('discussions_tags')
->whereIn('tag_id', Tag::getIdsWhereCannot($actor, 'discussion.viewFlags'))
->where('discussions.id', new Expression('discussion_id'));
->whereRaw('discussions.id = discussion_id');
});
}
}

View File

@@ -14,7 +14,6 @@ namespace Flarum\Tags\Gambit;
use Flarum\Search\AbstractRegexGambit;
use Flarum\Search\AbstractSearch;
use Flarum\Tags\TagRepository;
use Illuminate\Database\Query\Expression;
class TagGambit extends AbstractRegexGambit
{
@@ -48,17 +47,17 @@ class TagGambit extends AbstractRegexGambit
foreach ($slugs as $slug) {
if ($slug === 'untagged') {
$query->orWhereNotExists(function ($query) {
$query->select(new Expression(1))
$query->selectRaw('1')
->from('discussions_tags')
->where('discussions.id', new Expression('discussion_id'));
->whereRaw('discussions.id = discussion_id');
});
} else {
$id = $this->tags->getIdForSlug($slug);
$query->orWhereExists(function ($query) use ($id) {
$query->select(new Expression(1))
$query->selectRaw('1')
->from('discussions_tags')
->where('discussions.id', new Expression('discussion_id'))
->whereRaw('discussions.id = discussion_id')
->where('tag_id', $id);
});
}

View File

@@ -16,7 +16,6 @@ use Flarum\Discussion\Event\Searching;
use Flarum\Tags\Gambit\TagGambit;
use Flarum\Tags\Tag;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Database\Query\Expression;
class FilterDiscussionListByTags
{
@@ -51,10 +50,10 @@ class FilterDiscussionListByTags
}
$query->whereNotExists(function ($query) {
return $query->select(new Expression(1))
return $query->selectRaw('1')
->from('discussions_tags')
->whereIn('tag_id', Tag::where('is_hidden', 1)->pluck('id'))
->where('discussions.id', new Expression('discussion_id'));
->whereRaw('discussions.id = discussion_id');
});
}
}