Итак, в основном у меня есть поле в таблице из моей базы данных, которое содержит некоторые значения, разделенные запятой (что-то вроде: value1, value2, value3
). Мне нужно как-то проверить, если одно или несколько из этих значений содержатся в массиве значений и извлекают модель (модели). Я бы хотел, чтобы решение, использующее Eloquent Model Query для достижения этого, если это невозможно с помощью Model Query, тогда решение Query Builder будет хорошо, или, может быть, что-то альтернативное.Laravel 5: Как проверить, содержатся ли значения, разделенные запятой из поля таблицы базы данных в массиве?
ответ
Пытался использовать функцию внутри where
инструкции, где я мертвая массив значений и просто запросить модель с помощью like
оператора, чтобы проверить, если значение полей совпадает со значениями из массива и в конце концов я получил что-то вроде этого:
$devices = explode(",", Input::get("devices"));
$products = Product::where(function ($q) use ($devices) {
foreach ($devices as $device) {
$q->orWhere("compatible_devices", "like", "%" . $device . "%");
}
})->get();
Хорошо работает до сих пор.
Я полагаю, это может привести к неожиданным результатам. Если у вас есть «значение12» в вашем списке, и вы фильтруете «% value1%», вы получите нежелательное совпадение. Вероятно, вам следует рассмотреть структуру базы данных и работать с реальным отношением «многие ко многим», переместив эти совместимые_объекты в свою собственную таблицу. Это позволит вам правильно их запросить, используя соединение. – Pevara
Да, вы правы, и у меня на самом деле есть таблица, которая содержит значения для поля compatible_devices, но мне нужно было сделать совпадение, используя только значения, хранящиеся в поле Compatibility_desvices. Я думаю, что для этой цели я просто сделаю дополнительную таблицу «многие ко многим». Спасибо! – Eseth
- 1. Значения, разделенные запятой, в поле базы данных
- 2. PHP экспорт значения из базы данных, разделенные запятой, в строке
- 3. [таблицы Google] [COUNTIFS] выбора значения из запятой/не разделенные запятой
- 4. Как импортировать значения базы данных, разделенные запятой, в массив
- 5. разделенные запятой, если значение в массиве пуста
- 6. Форматировать результаты базы данных как разделенные запятой
- 7. Заменить значения, разделенные запятой
- 8. Regex: значения, разделенные запятой
- 9. Проверить наличие значения из таблицы базы данных
- 10. Два разделенные запятой списки в массиве
- 11. Как вставить значения, разделенные запятой
- 12. Значения, разделенные запятой, в select query
- 13. Как получить значения, разделенные запятой из списка?
- 14. Значения, разделенные запятой
- 15. Переупорядочить значения, разделенные запятой
- 16. SQL разделенные запятой значения
- 17. MySQL разделенные запятой поля запроса
- 18. фильтр разделенные запятой значения из той же таблицы
- 19. Как проверить взорвать, содержат только значения, разделенные запятой ...?
- 20. Значения, разделенные запятой, со всеми строками из таблицы
- 21. как решить значения, разделенные запятой, в struts2
- 22. Получать значения, разделенные запятой из формы?
- 23. Связи базы данных Laravel 5
- 24. C# разделяет значения, разделенные запятой
- 25. MySQL проверяет, соответствуют ли значения, разделенные запятой, строками в таблице
- 26. SQL select list как значения, разделенные запятой
- 27. Возвращаемые значения, разделенные запятой SQL
- 28. разделенные запятой поля для сравнения в MySQL
- 29. Perl проверить, если элементы содержатся в массиве
- 30. Laravel: Как получить значения из таблицы в массиве?
Возможно, вам стоит попробовать что-то и написать свой код здесь. Или нанять разработчика ... – Pevara