Я построил небольшую форму поиска, которая помогает мне искать работу в таблице из БД.
В таблице jobs есть столбцы jobTitle, jobCompany, jobGovernorate, jobLocation и made_at
И размещены данные из формы поиска:
{ «JobTitle»: «дизайнер», «jobCompany»: нулевой, «jobGovernorate»: нулевой, «jobLocation»: нулевой, «PostingDate»: «объявление»}
Я имею в виду, что некоторые входные данные могут быть нулевыми, поэтому как писать динамические, где предложение для входных данных имеет значение, я хочу, чтобы поисковая система могла выполнять поиск по JobTitle, JobCompany или всем входным данным, если они имеют значение.
Подсказка: имя поля и имя столбца таблицы совпадают
если есть способ получить работу из моей базы данных, как
DB::table('jobs')->where($request->all())
Извините за плохой английский, я не знаю, как объяснить мой вопрос
Я предпочитаю определять все поля поиска.
$searchFields = ['jobTitle','jobCompany','jobGovernorate','jobLocation','postingDate'];
$jobQuery = DB::table('jobs');
foreach ($searchFields as $field) {
if ($request->has($field)) {
$jobQuery->where($field, $request->input($field));
}
}
$results = $jobQuery->get();
Вы должны закодировать запрос, я имею в виду, что вы ищете?
что-то вроде
DB::table('jobs')->where([
['jobTitle', 'like', $request->jobTitle . '%'],
['jobCompany', 'like', $request->jobCompany . '%']])->get();