Ваша идея и подход верны, но вы смешиваете LIKE
и =
запросов. %
является подстановочным знаком, но его можно использовать только с LIKE
.
Итак, если вы хотите использовать подстановочный знак и LIKE
,
if(!empty($gender)) {
$productsQuery->where('gender', 'LIKE', "%$gender%");
}
Или, если вы хотите сопоставить по точному тексту,
if(!empty($gender)) {
$productsQuery->where('gender', $gender);
}
Ваш текущий код будет искать точное совпадение буквенной строки %male%
, например.
Имейте в виду, что при использовании подстановочного знака male
также будет соответствовать female
(так как оба они содержат слово "мужской").