sql - Laravel Eloquent 中的 Sum 和页面返回

标签 sql laravel eloquent laravel-blade

我正在尝试使用以下 Eloquent 查询来获取该位置的库存值(value)。它正确地提取除返回 null 的库存值之外的所有内容(位置名称、地址、用户数量等)。我首先在 SQL 中构建了这个查询,效果很好,但由于某种原因在 eloquent 中不起作用。这是完全相同的查询。

$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();

在 Blade 文件上,我使用 @foreach 循环。我尝试使用返回 null 的 {{$location->inventory_value}} 。我尝试在 Controller 中转储该特定变量,但它也为空。 Blade 文件如下所示:

enter image description here

它应该返回以下所有内容的库存值(value):

enter image description here

最终我的问题是如何修复此查询以获得库存价格和数量的总和以显示在 Blade ​​文件上?谢谢!

最佳答案

使用DB::raw时将所有列作为第一个参数(在同一引号内)传递,例如:

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...

关于sql - Laravel Eloquent 中的 Sum 和页面返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55789221/

相关文章:

sql - postgresql -- Curval 不起作用,使用 PHP PDO

php - Mysql Query Group Concat 限制单个查询中子表的多条记录

php - Laravel 递归地在 "app/database/migrations"文件夹上运行迁移

mysql - groupBy ('created_at' ) 在 laravel Eloquent 中使用子查询

php - 根据 Eloquent 另一个​​表中的列选择十大类别

mysql - Laravel Eloquent : Alphabetical Order but from Small words to Sentence

MySQL 不返回相同的结果

sql - 每行SQL中相同ID的总和

php - 将 Mysql 查询解析为 Select unique from id 和 order by date accing

php - 如何优化数据加载速度