У меня есть веб-страница, которая позволяет вам просматривать различные предложения о работе, они сохраняются в таблице MySQL под названием «вакансии»
«вакансии» имеет разныестолбцы, один из которых «базовый» для обычных рабочих мест и «op2» для премиальных рабочих мест.
При выполнении поиска я пытаюсь отобразить обе эти категории в своих результатах, однако мне удалось отобразить только одну, а не обе.
Мне удалось отобразить обе этизадания с использованием:
$premium_jobs = Posts::where('title', 'like', '%' . $request->q . '%')->where('type', 'op2')->where('status', 'active')->orderBy('id', 'desc')->take(3)->get();
Однако при использовании фильтров для поиска определенных слов он работает с базовыми заданиями, но отображает все премиальные задания без применения какого-либо фильтра.
Некоторые запросы, которые не работали:
Поиск основных заданий, но всегда отображает все задания премиум-класса, независимо от того,что это был за поиск:
$premium_jobs = Posts::where('title', 'like', '%' . $request->q . '%')->where('type', 'op2')->where('status', 'active')->orderBy('id', 'desc')->take(3)->get();
Пример
Не отображает премиальные вакансии, отображаются только основные вакансии:
$premium_jobs = Posts::where('title', 'like', '%' . $request->q . '%')->where('type', 'op2')->where('type', 'basic')->where('status', 'active')->orderBy('id', 'desc')->take(3)->get();
Пример
Не отображает базовые задания, отображаются только премиальные задания:
$premium_jobs = $jobs->where('type', 'op2')->where('status', 'active')->paginate(15);
Пример
Отображение премиальных заданий и базовых заданий, а также дубликат базовых заданий в виде премиум-заданий:
$premium_jobs = $jobs->where('status', 'active')->paginate(15);
Пример
Контроллер:
<?php
class SearchController extends Controller
{
public function index(Request $request){
$jobs = new Posts();
if ($request->has('q')) {
$jobs = $jobs->where('title', 'like', '%' . $request->q . '%');
}
if (!empty($request->city)) {
$city = Cities::where('name', $request->city)->first();
$jobs = $jobs->where('city_id', $city->id);
}
if (!empty($request->min_salary)) {
$jobs = $jobs->where('salary', '>', $request->min_salary);
}
if (!empty($request->jt)) {
$job_type = JobTypes::where('name', $request->jt)->first();
$jobs = $jobs->where('job_type_id', $job_type->id);
}
if (!empty($request->ex)) {
$jobs = $jobs->where('experience', $request->ex);
}
if (!empty($request->cat)) {
$category = Categories::where('name', $request->cat)->first();
$jobs = $jobs->where('cat_id', $category->id);
}
// PREMIUM JOBS
$premium_jobs = $jobs->where('status', 'active')->paginate(15);
// BASIC JOBS
$basic_jobs = $jobs->where('type', 'basic')->where('status', 'active')->paginate(15);
$cities = Cities::all();
$job_types = JobTypes::all();
$categories = Categories::all();
return view('search.index', compact('basic_jobs', 'premium_jobs', 'request', 'cities', 'job_types', 'categories'));
}
?>
Любое понимание будет с благодарностью!
Заранее спасибо.