Laravel — извлекать записи, начинающиеся с «X»

#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 }}
 

Возвращает значение поля.

Спасибо всем.