汇总所有子模型的价值的更好方法

时间:2019-01-22 13:46:12

标签: laravel eloquent

我正在尝试执行以下操作,并且它正在运行,但是我确定必须有一种更好的方法来执行此操作。非常感谢您的投入。非常感谢。

public static function calculateStorageUsage(){
    $kb = 0;

    $properties = Auth::user()->landlord_profile_auto->properties()->with('images')->get();
    foreach($properties as $property){
        foreach($property->images as $image){
            $kb += $image->size_kb;
        }
    }
    return $kb;
}

我正在尝试计算所有图像使用的总存储量。

1 个答案:

答案 0 :(得分:1)

由于默认情况下关系会返回Collection,因此以下方法应该起作用:

public static function calculateStorageUsage()
{
    $properties = Auth::user()
        ->landlord_profile_auto
        ->properties()
        ->with('images')
        ->get();

    return $properties->images->sum('size_kb');
}