Я хочу сделать правильно фильтр по цене, но выдаёт ошибку.
В таблице есть 2 поля с ценами price_weekend_max и price_weekend_max_comm. При выводе этих цен я их прибавляю, т.е $c->price_weekend_max + $c->price_weekend_max_comm и получается одна единая цена по которой я пытаюсь сделать фильтр.
Фильтр работает по следующему принципу: обычный ползунок от одной цены до к другой мин\макс передаются цены в метод и там я хочу фильтровать данные запросом.
$filtered_items = Cottage::orderBy('priority', 'desc');
$filtered_items = $filtered_items
->where('price_weekend_max + price_weekend_max_comm','>=', $data['price_from'])
->where('price_weekend_max + price_weekend_max_comm','<=', $data['price_to']);
При запросе получается ошибка:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '47000' in 'where clause' (SQL: select count(*) as aggregate from `cottages_new` where `persons_min` >= 1 and `47000` >= 0 and `47000` <= 0 and `publish` = 1)
Посмотрите на ошибку. MySQL не может найти в БД колонку 47000, поэтому того кода, что Вы показали, явно недостаточно для решения задачи. Посмотрите, что в себе хранит $data, сделайте дебаг sql-запроса.
Удобный пакет для дебага: https://github.com/barryvdh/laravel-debugbar
Должно сработать:
$filtered_items = Cottage::orderBy('priority', 'desc');
$filtered_items = $filtered_items
->where((int)'price_weekend_max + price_weekend_max_comm','>=', $data['price_from'])
->where((int)'price_weekend_max + price_weekend_max_comm','<=', $data['price_to']);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости