return 模型中带小数的价格的最佳方式

Best way to return price with decimals from Model

在我的模型中,我有基于 hasMany 关系的总价计算。它看起来像这样:

public function totalPrice(): string
{
    return num_format($this->hasMany(Direction::class)->sum('price'));
}

我使用 num_format 文件中描述的 num_format 函数。如果我需要更改数字格式,我可以随时编辑辅助函数。但是我想知道是否有 better/nicer 方法可以做到这一点?据我了解,在这种情况下我不能使用 $casts 作为函数吗?你都有些什么想法呢?你认为我使用的方法正确吗? 谢谢你的想法

我认为这很好,我个人会解耦关系,然后让 totalPrice 为 num_format($this->directions()->sum('price'))

如果你想要一个定义它的全局方式,你可以定义一个 global scope ,它会被称为 sumWithDp ,然后在任何具有定义关系的模型中你可以调用:

$this->relation()->sumWithDp('price', $decimalPlaces)

(或者如果你愿意,总是让它成为 2 DP)