我正尝试通过以下雄辩的查询来获取该地点的广告资源价值。它会正确提取所有内容(位置名称,地址,用户数量等),除了返回null的库存值。我首先在SQL中构建了此查询,该查询效果很好,但无论出于何种原因都无法雄辩。这是完全相同的查询。
$locations = \App\Models\Location::select(DB::raw('locations.*', 'SUM(inventory.part_price * inventory.quantity) AS inventory_value'))
->leftJoin('inventory', 'locations.id', '=', 'inventory.location_id')
->where('locations.company_id', '=', Auth::user()->company_id)
->groupBy('locations.id')
->get();
在刀片文件上,我正在使用@foreach
循环。我尝试使用返回空值的{{$location->inventory_value}}
。我试图在控制器中转储该特定变量,那里也为null。刀片文件如下所示:
它应该返回以下所有物品的库存值:
最终我的问题是如何解决此查询,以获取要在刀片文件上显示的库存价格和数量的总和?谢谢!
答案 0 :(得分:4)
使用DB::raw('locations.*, SUM(inventory.part_price * inventory.quantity) AS inventory_value')
时,将所有列作为第一个参数传递(在同一引号内),例如:
selectRaw
您还可以使用use App\Models\Location;
$locations = Location::selectRaw('locations.*, SUM(inventory.part_price * inventory.quantity) AS inventory_value')->leftJoin...
使它看起来更干净:
{{1}}