Как искать товар по категории и местоположению в laravel одновременно - PullRequest
0 голосов
/ 21 июня 2020

У элементов есть category_id и location_id, которые связаны с категорией и местоположением таблиц. Форма поиска имеет 3 поля, 1 ключевое слово элемента, 2-е - выбор категории и 3-е - ее расположение. Пользователь должен заполнить все поля, чтобы иметь возможность искать. Проблема в том, что поиск работает только для первого поля ввода и выводит все элементы с тем же именем, но местоположение и категории не фильтруются во время поиска ...

public function search(Request $request) {
      $query = $request->input('query');
      $cQuery = $request->input('subCategoryId');
      $pQuery = $request->input('province');
      
      $subCategories = Business::where('name', 'like', "%$query%")
      ->where('province_id', 'like', "%$pQuery%")
      ->where('sub_category_id', 'like', "%$cQuery%")->get();


    return view('pages.search-result')
    ->with('subCategories', $subCategories);
    }

1 Ответ

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

Я предположил, что у вас есть настройки отношений для всех моделей. Если нет, пожалуйста, от go до Определение отношений .

Рассмотрите приведенный ниже ответ как скелетный пример того, что вы ищете.

$businesses = Business::where('name', 'like', '%' . $query . '%')
    ->with('province', 'subCategory')
    ->whereHas('province', function ($q) use ($pQuery) {
        $q->where('name', 'like', '%' . $pQuery . '%');
    })
    ->whereHas('subCategory', function ($q) use ($cQuery) {
        $q->where('name', 'like', '%' . $cQuery . '%');
    })
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...