Сортировка и фильтрация сообщений с помощью ajax - PullRequest
0 голосов
/ 21 июня 2019

Я бы хотел иметь возможность фильтровать и сортировать сообщения через ajax.Я уже могу фильтровать посты, но не знаю, как совместить сортировку с фильтрацией.У меня есть несколько фильтров и несколько вариантов сортировки.

ajax работает, у меня только проблемы с контроллером.Я уже написал запросы.

sort:

  • топ сообщений (если запрос имеет "top") -> OrderByVotes ()
  • новейшие посты (если запрос имеет"new") -> latest ()
  • самый комментируемый (если запрос имеет "most") -> OrderByComments ()

это мой контроллер:

                if (request()->has('image')) {
                    $postall = $user->posts()->with('comments', 'tags')->whereIn('privacy', [1, 2])->where('type', '=', 4)->where('status', 1)->where('archived', 0)->latest()
                        ->paginate(15)->appends('image', request('image'));
                } elseif (request()->has('video')) {
                    $postall = $user->posts()->with('comments', 'tags')->whereIn('privacy', [1, 2])->where('type', '=', 5)->where('status', 1)->where('archived', 0)->latest()
                        ->paginate(15)->appends('video', request('video'));
                } elseif (request()->has('audio')) {
                    $postall = $user->posts()->with('comments', 'tags')->whereIn('privacy', [1, 2])->where('type', '=', 6)->where('status', 1)->where('archived', 0)->latest()
                        ->paginate(15)->appends('audio', request('audio'));
                } elseif (request()->has('text')) {
                    $postall = $user->posts()->with('comments', 'tags')->whereIn('privacy', [1, 2])->whereIn('type', [1, 2, 3, 8])->where('status', 1)->where('archived', 0)->latest()
                        ->paginate(15)->appends('text', request('text'));
                } else {
                    $postall = $user->posts()->with('comments', 'tags')->whereIn('posts.privacy', [1, 2])->where('posts.type', '!=', 7)->where('posts.status', 1)->where('posts.archived', 0)->latest()->paginate(15);
                }

1 Ответ

0 голосов
/ 22 июня 2019

Вы можете использовать когда в качестве условных предложений в вашем запросе в laravel. Это документация об этом Условные пункты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...