У меня есть сайт в разработке, в котором есть столбец базы данных «пол» и «размер» в таблице в MySQL. это перечисление с m, f как для пола, так и для s, m, l, xl для размера. При отображении этих данных в блейдах я использовал массивы для правильного просмотра.
Теперь я использую функцию поиска, и она работает нормально. Когда я набираю 'm' в качестве ключевых слов, отображаются все фильтры и результаты поиска, но проблема возникает, когда я набираю 'мужской', так как результаты не отображаются.
public static function apply(Builder $builder, $value, $checkbox)
{
//i am using a temporary fix like this. I need a proper fix for this.
if(strtolower($value) == "male"){
$value = "m";
} else if (strtolower($value) == "female") {
$value = "f";
} else if (strtolower($value) == "other") {
$value = "both";
}
if($checkbox == null) {
$a = $builder->whereHas ('product', function ($a) use ($value) {
$a->where('gender', 'LIKE', '%' . $value . '%');
});
} else {
$a = $builder->whereHas ('product', function ($a) use ($value) {
$a->where('gender', 'LIKE', '%' . $value . '%');
})->whereRaw('`stocks`.`quantity` < `stocks`.`low_stock_threshold`');
}
return $a;
}