#php #mysql #sql #search #laravel
#php #mysql #sql #Поиск #laravel
Вопрос:
Я осматривался и тестировал вещи уже около 2 часов, и я, наконец, понял, что пришло время обратиться за помощью.
В принципе, я хочу выполнить поиск по каталогу, но возвращать только элементы, начинающиеся с определенной буквы. Я пробовал разные вещи, начиная с необработанных запросов и заканчивая попытками изменить where() по своему вкусу, но ни один из существующих методов для достижения этого пока не сработал для меня.
Код, с которым я работаю здесь, довольно прост.
$var = DB::('table')->where('field', 'LIKE', "%$argument")->get();
аргумент $ передается через URI (root.com/controller/sort-by/field /$arg). Все сегменты URI печатаются правильно при редактировании dd(). Я бы предположил, что правильное значение передается в запрос? Также, если я dd($var), то он заполняется записями таблицы, когда я удаляю оператор where().
Я пробовал здесь много чего, и ничто не извлекает единственную запись, которая у меня есть в базе данных на данный момент…
Итак, я что-то здесь упускаю из виду — или на самом деле решаю это неправильно?
Комментарии:
1. Вы пробовали $var = DB::(‘таблица’)-> где(‘поле’, ‘НРАВИТСЯ’, ‘%’ . $argument)-> get(); ?
2. или, возможно
["%argument"]
, и передавать ему массив3. @Ohgod Почему мне может понадобиться немного больше понимания этого. У меня аргумент передается через URI — так что, если бы я превратил его в массив, каким был бы этот процесс? Не очень знаком с помещением одной строки в массив для доступа к ней в инструкции SQL.
4. Итак, я получаю некоторую форму ответа после изменения моего запроса на Table::where(‘field’, ‘LIKE’, «% $arg»); — но я не могу получить доступ к каким-либо данным из него.
5. Я поменял% с начала на конец, и теперь я получаю результаты — и он возвращает NULL, когда не ищет букву, связанную с единственной записью базы данных. Теперь мои проблемы в том, что он возвращает ДВА одинаковых результата, и это даже с помощью -> first()
Ответ №1:
Я поменял свой запрос на
$foo = MODEL::where('#FIELD#', 'LIKE', $arg . '%')->get();
Затем я могу получить доступ к значениям, перечислив их через возвращаемый массив. Таким образом, потребуется foreach, но в общих чертах.
{{ $foo[0]->field }}
Возвращает значение поля.
Спасибо всем.