Я бы хотел иметь возможность фильтровать и сортировать сообщения через 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);
}