#laravel
#laravel
Вопрос:
Есть ли способ определить, соответствует ли этот запрос:
$news_result = Post::with('image')
->has('image')
->with('tags')
->where('title', 'LIKE', '%' . $search . '%')
->get();
Есть 100% совпадение с каким-либо заголовком? Если пользователь ищет «Какой-то случайный заголовок новости», а в базе данных есть запись с таким заголовком, чтобы вернуть какой-то маркер?
Комментарии:
1. 100% совпадением будет: -> where(‘title’, ‘LIKE’, $ search)
2. Просто измените
where('title', 'LIKE', '%' . $search . '%')
наwhere('title', $search)
3. Просто проверьте полученную модель, например,
$post->title === $search
. Если вам нужно сделать это на стороне базы данных, используйтеSQL CASE statement
для дополнительного поля.
Ответ №1:
LIKE
Оператор используется для частичного сопоставления чего-либо.
Вы не должны использовать это, а ->where('title', $search)
вместо этого.
Ответ №2:
Удалите ‘%’ в своем коде
$news_result = Post::with('image')->has('image')->with('tags')->where('title', $search)->get();