Как сделать поиск на laravel

Есть товары, у товаров есть характеристики, характеристики хранятся в таблице товаров в столбике fields тип - JSON ("id характеристики":"Значение характеристики")

 id |   title   | fields
  1 |  Товар 1  | {"1":"Стена"}
  2 |  Товар 2  | {"1":"Стена бетонная"}
  3 |  Товар 3  | {"1":"Стена бетонная окрашенная"}

Например когда мы ищем:

  1. По характеристике Стена - получаем в ответ все товары
  2. По характеристике Стена бетонная - получаем в ответ товары с id: 2, 3
  3. По характеристике Стена бетонная окрашенная - получаем в ответ товары с id: 3

Надеюсь объяснил нормально)

У меня в голове 0, в какую сторону идти, что прочитать?


Ответы (1 шт):

Автор решения: yuralucky

Если по простому,то Model::query() ->where('fields', 'LIKE', "%{$searchTerm}%") ->get(); или whereRaw('json_contains(destinations, '["' . $keyword . '"]')')->get() Если по нормальному - то потрать время и найди крутой "велосипед". Например https://laravel.com/docs/8.x/scout или похожее

→ Ссылка