@swyt

Можно ли сделать поиск в Laravel по двум колонкам?

Есть код, который ищет по данным из колонки title
...
'movies' => Movie::query()
                    ->select(['id', 'poster', 'original_title', 'title', 'release_date'])
                    ->selectRaw("concat(title, ' ', release_date) as title_and_year")
                    ->when(
                        fn ($query) => $query
                            ->when(
                                fn ($query) => $query->having('title_and_year', 'LIKE', $search),
                            )
                    )
...

Если написать так, то будет искать по колонке original_title
...
'movies' => Movie::query()
                    ->select(['id', 'poster', 'original_title', 'title', 'release_date'])
                    ->selectRaw("concat(original_title, ' ', release_date) as title_and_year")
                    ->when(
                        fn ($query) => $query
                            ->when(
                                fn ($query) => $query->having('title_and_year', 'LIKE', $search),
                            )
                    )
...

Есть ли вариант объединить их, чтобы искало по двум колонкам?
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
yesbro
@yesbro
Думаю, помогаю думать
havingRaw / orHavingRaw разве тут не поможет?

Ну и второе объединенное поле обозвать по другому, например original_title_and_year.

->selectRaw("concat(title, ' ', release_date) as title_and_year, concat(original_title, ' ', release_date) as original_title_and_year")


Или надо не совсем это?

P.S. А еще лучше перевести поиск на Meilisearch
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы