LINUX.ORG.RU

Laravel and eloquent

 , , ,


0

1

Всем привет, столкнулся с такой задачей что завела меня в тупик, давно не работал с запросами в sql, и тут возникла такая задача, есть таблица продуктов, в которой есть цена и id валюты если цена не в нац. валюте, и таблица валют, там id, код валюты и её цена относительно национальной. Нужно на сайте сделать фильтрацию по цене в нац. валюте, сделал я join таблицы валют к таблице продуктов, но как в select сделать перемножение цены продукта на цену валюты, чтобы получить цену в нац. валюте, код подобного вида

DB::table(self::TABLE_TITLE)
->select('price * currency_price as some_price')

выдает ошибку мол полей price и currency_price не существует, хотя если убрать select в конечной выдаче поля есть, и вот в реалиях eloquent ORM как это верно реализовать я не приложу ума, подсобите советом пожалуйста.


Ответ на: комментарий от pkurg

Как-то упустил raw операцию, благодарю.

Berdin
() автор топика
Ответ на: комментарий от pkurg

Но вот еще одна проблема всплыла) добавить произведение двух полей получилось, но

select *, value * price as totalPrice from `products` left join `currencies` on `products`.`currency_id` = `currencies`.`id` where (`category_id` = 3) or `totalPrice` = 3000 order by `name` asc limit 20 offset 0

в этом случае - Unknown column 'totalPrice' in 'where clause', не могу понять может этот totalPrice в where нужно как-то по другому обернуть если это подсчитано таким образом?

Berdin
() автор топика
Ответ на: комментарий от Berdin

Where не видит твой totalPrice, это нормально. Указывай явно:( value * price) = 3000

gobot ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.