Laravel eloquent сравнивает пользовательское значение

#php #mysql #laravel-5.3

#php #mysql #laravel-5.3

Вопрос:

Я работаю над Laravel 5.3, и у меня есть where условие, query подобное :

$query = $query->where('city', '=', $city);

Моя проблема в том, что переменная, которую $city мне нужно сравнить, — это сокращенная версия городов в базе данных, например, если в базе данных у меня есть Boston Texas город, в моей переменной у меня есть boston-texas

Как я могу сравнить эти значения? Есть ли способ динамического получения версии slug в SQL? С помощью Laravel?

Комментарии:

1. Это зависит от того, есть ли у вас таблица сопоставления между версией slug и фактическим текстом, или вы можете алгоритмически воспроизвести версию slug из обычного текста.

2. Попробуйте str_slug() вспомогательную функцию. Документы: laravel.com/docs/5.3/helpers#method-str-slug Кроме того, where() метод принимает замыкание, так что вы можете провести сравнение там.

3. Что-то вроде where(str_slug(‘city’), ‘=’, $city); ? Но при этом я использую слово city, а не значение