Как сделать правильно запрос к базе Laravel?

161
06 ноября 2018, 01:40

Я хочу сделать правильно фильтр по цене, но выдаёт ошибку.

В таблице есть 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)
Answer 1

Посмотрите на ошибку. MySQL не может найти в БД колонку 47000, поэтому того кода, что Вы показали, явно недостаточно для решения задачи. Посмотрите, что в себе хранит $data, сделайте дебаг sql-запроса.

Удобный пакет для дебага: https://github.com/barryvdh/laravel-debugbar

Answer 2

Должно сработать:

$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']);
READ ALSO
Cooldown php json

Cooldown php json

Как через json можно сделать cooldown? Например у меня есть бот ВКонтакте, и команда "бонус", мне нужно сделать так, чтобы при второй отправке команды...

185
База данных для доски объявлений

База данных для доски объявлений

Я хотел-бы посоветоватьсяЕсть сайт - доска объявлений, на котором я проектирую базу данных

179
Регистрация на PHP

Регистрация на PHP

Есть задача - это регистрация пользователя и сохранение его в базе phpmyadminПри отправке GET или POST запросом в form нужно обязательно жать отправить

163
Как понять написание кода в внутри preg_march_all?

Как понять написание кода в внутри preg_march_all?

В preg_match_all первым аргументом вставляется html блок

166