Laravel口才相加并返回页面

时间:2019-04-22 04:44:34

标签: sql laravel eloquent laravel-blade

我正尝试通过以下雄辩的查询来获取该地点的广告资源价值。它会正确提取所有内容(位置名称,地址,用户数量等),除了返回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。刀片文件如下所示:

enter image description here

它应该返回以下所有物品的库存值:

enter image description here

最终我的问题是如何解决此查询,以获取要在刀片文件上显示的库存价格和数量的总和?谢谢!

1 个答案:

答案 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}}