Нужна помощь в Laravel manimum и максимальный пользовательский ввод в laravel

#php #mysql #laravel

Вопрос:

Я застрял в проблеме, что я хочу сделать фильтр данных в фреймворк Laravel или MySQL, который я впоследствии преобразует в Laravel, и это я хочу фильтровать значения из диапазона слайдера гарантийное
который фактически между 80 и 150 (по выбору пользователя)
и в базе данных (MySQL) у меня есть только минимальное значение-80, а максимальное значение-200

но при использовании следующего кода он возвращает только максимальное значение заданного минимального значения

     $product = product::join('tire_brands', 'product.brand', '=', 'tire_brands.id')
    ->join('speedrating','product.speedrating','=','speedrating.id')
    ->where($whereData)
    ->when(!empty($category), function ($query) use ($category) {
        return $query->whereIn('itemtype', $category);
    })
    ->when(!empty($speedrating), function ($query) use ($speedrating) {
        return $query->whereIn('speedrating', $speedrating);
    })
    ->when(!empty($tirebrands), function ($query) use ($tirebrands) {
        return $query->whereIn('brand', $tirebrands);
    })
    ->when(!empty($minwarrenty) amp;amp; !empty($maxwarrenty), function ($query) use ($minwarrenty,$maxwarrenty) {
        return $query->whereBetween('warrenty', [$minwarrenty, $maxwarrenty]);
    })
    ->when(!empty($minimum_load) amp;amp; !empty($maximum_load), function ($query) use ($minimum_load,$maximum_load) {
         return $query->whereBetween('maxload', [$minimum_load, $maximum_load]);
    })
    ->when(!empty($curroff), function ($query) use ($curroff) {
        return $query->whereIn('curr_offerid', $curroff);;
    })
    ->when(!empty($sidewal), function ($query) use ($sidewal) {
        return $query->whereIn('sidewall_id', $sidewal);;
    })
    ->when(!empty($tyrtyp), function ($query) use ($tyrtyp) {
        return $query->whereIn('tyretype_id', $tyrtyp);;
    })
    ->get(['product.id','product.name as pronam',
     'tire_brands.name as brand', 'sku','slug','warrenty','speedrating','itemtype',
    'product.image','product.video','speedrating.name as speedrating','touring']);

    return $product;
 

Что я делаю не так?

введите описание изображения здесь

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

1. Неясно, в чем проблема.

2. посмотрите результат запроса перед тем, как использовать метод get() с помощью toSql (), и создайте dd($product); наконец, вставьте полученный запрос в клиент БД и посмотрите результаты

3. сэр , на самом деле это похоже на ценовой диапазон(фильтр продукта ) в laravel, но в моем случае у меня есть два ползунка конечного диапазона. начальный узел динамически устанавливается на минимальное значение гарантии в базе данных, а последний узел диапазона-ползунок устанавливается на максимальную гарантию продукта, который будет использоваться пользователем для фильтрации диапазона гарантии

4. но проблема, с которой я сталкиваюсь, заключается в том, что пользователь выбирает значение warrenty, например, если оно равно 80, как минимум, и пользователь перемещает sildes в 89 точках, а максимальное значение warrenty равно 200, используя этот код ->когда(!пусто($minwarrenty) amp;amp; !пусто($maxwarrenty), функция ($запрос) использует ($minwarrenty,$maxwarrenty) { возврат $запроса->>Где между(‘warrenty’, [$minwarrenty, $maxwarrenty]); }) он возвращает только максимум, даже если он составляет 86, так как он также находится в диапазоне