计算 Laravel 中两列之间的差异之和

问题描述 投票:0回答:1

我正在尝试计算“缺勤”表中“从”和“到”列之间的差异总和,但遇到错误。

未找到列:1054 未知列“absences.hours_difference” ‘字段列表’

$classesAbsences = Classes::withSum([
    'absences' => function ($query) {
        $query->selectRaw('TIMESTAMPDIFF(HOUR, `from`, `to`) AS hours_difference');
    }
], 'absences.hours_difference')
    ->get();
laravel eloquent model sum relational-database
1个回答
0
投票

您可以使用

with
方法加载
absences
关系,然后手动计算总和。

$classesAbsences = Classes::with([
    'absences' => function ($query) {
        $query->selectRaw('TIMESTAMPDIFF(HOUR, `from`, `to`) AS hours_difference');
    }
])->get();

// Calculate the sum manually
$classesAbsences->each(function ($class) {
    $class->total_hours_absence = $class->absences->sum('hours_difference');
});
© www.soinside.com 2019 - 2024. All rights reserved.