Я хочу получить конкретный результат поиска, а не любое слово, как это - PullRequest
1 голос
/ 31 октября 2019

$ q здесь - это то, что USERS вводит для поиска, и если он вводит значение, он возвращает все продукты с этим значением, но я хочу получить единственное равенство, я думаю, что ключевое слово LIKE - моя проблема.

$info = Info::where('code', 'LIKE', '%' . $q . '%')->get();

Ответы [ 3 ]

2 голосов
/ 01 ноября 2019

Чтобы получить все продукты с точным термином, вы можете использовать оператор = или вообще не использовать оператор where. Таким образом, вы можете использовать эти два параметра:

$info = Info::where('code', '=', $q)->get();

или

$info = Info::where('code', $q)->get();

Это вернет коллекцию с несколькими элементами.

Если вы хотите получить толькоодин продукт, используйте first вместо get:

$info = Info::where('code', $q)->first();
0 голосов
/ 01 ноября 2019

«как» использовать для поиска, если эта строка $ q является строкой, вы можете сделать это в первой или последней строке, если в строке или в центре

Как использовать подобное: https://www.w3schools.com/sql/sql_like.asp

В вашем случае вы не должны использовать, как вы должны использовать '='

$ info = Info :: where ('code', '=', $ q) -> get ();Или $ info = Info :: where ('code', $ q) -> get ();Здесь по умолчанию он использует =

0 голосов
/ 01 ноября 2019

Я думаю, что в этой ситуации вы можете попробовать эластичный поиск в БД. Он вернет коллекцию с процентами для обработки вашего поискового запроса.

Также для более профессионального способа проверьте Laravel scout

проверьте это: https://madewithlove.be/how-to-integrate-elasticsearch-in-your-laravel-app-2019-edition/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...