Мой вопрос касается упрощения нескольких запросов Eloquent, которые работают с нумерацией страниц Laravel.
Я создаю веб-сайт Laravel, на этом сайте люди могут делиться некоторыми рецептами.
У меня есть несколько переменных, которые члены могут искать, фильтровать и просматривать.Поэтому участники могут публиковать рецепты и добавлять: - Тип - Продолжительность - Страна - Платформа
Идея состоит в том, что есть страница со всеми рецептами, но есть также страницы, где только рецепты для 1, 2 или более фильтровприменяются.Например, холодные 5-минутные рецепты или немецкие теплые длинные рецепты.
Я использую Laravel 5.7, и теперь я создаю все виды запросов с различными операторами where.Примерно так:
public static function getRecipesMixFilter($cid, $pid, $tid, $did)
{
$recipes = self::with(['member', 'platform', 'member.platform', 'member.duration', 'member.type'])->whereActive(1)->whereHas('member', function ($query) use ($cid, $pid, $tid, $did) {
$query->where('country_id', '=', $cid)
->where('platform_id', '=', $pid)
->where('type_id', '=', $tid)
->where('duration_id', '=', $did);
})->orderBy('updated_at', 'desc')->paginate(24);
return $recipes;
}
Но какой самый простой способ сделать это?Теперь у меня есть 15 различных запросов, где я чувствую, что это может быть 1. Так что -> где ('platform_id', '=', 1) и т. Д. Являются необязательными.
Когда я пытаюсь отфильтровать каждый объект, чтобы сначала указать Платформу, затем Тип и т. Д., Я не могу применить нумерацию страниц.
Есть ли способ упростить это?И можно ли использовать фильтры Ajax с нумерацией страниц Laravel?