Я пытаюсь выбрать вычисляемый столбец на основе столбцов в связанных таблицах.Laravel DB Query Builder translate from mySQL
Это эквивалент в SQL
SELECT
*,
(p.weight * p.fineness * f.fixam/31.1035) as buy_gram
FROM
products p, fixes f, metals m
WHERE
p.metal_id = m.id AND
f.metal_id = m.id AND
f.currency_id = :cid
Это моя попытка до сих пор с помощью Laravel Query Builder.
$products = Product::select(
['*',DB::raw('weight * fineness * fixes.fixam/31.1035 as buy_gram')])
->with(array(
'metal',
'metal.fixes.currency',
'metal.fixes' => function($query) use ($currency_id){
$query->where('currency_id', '=', $currency_id);
}))->get();
return View::make('admin.products.index')->with('products', $products);
Я сталкивался с сообщением об ошибке, говоря:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'fixes.fixam' in 'field list' (SQL: select *, weight * fineness * fixes.fixam as buy_gram from `products`) (Bindings: array ())
Я также пробовал другие комбинации fixes.fixam
, таких как metal.fixes.fixam
, metals.fixes.fixam
Вопрос 1: Как запросить эту внешнюю таблицу выполнить вычисление с помощью построителя запросов laravel? Вопрос 2: Есть ли какой-либо файл консоли/журнала, который я могу вывести сгенерированный sql для моих запросов в laravel?
'Колонка не найдена. что это сообщение об ошибке сообщает ya? – itachi
10 баллов за указание очевидного. :) Вопрос перефразирован для ясности. – Gravy