Laravel处理度量格式的最佳方式



我目前正在处理很多测量,我知道如果手动进行,从长远来看可能会导致很多问题。

例如:我将权重($weight = 50.55(作为整数存储在数据库(5055(中

然而,当我想理想地展示时,我会想要

  • 演示者格式("50.55LBS"(
  • 实重格式("50.55"(
  • 乘以100格式(int 5055(

如果我使用访问者,我会为每个字段添加3个方法,考虑到我需要为重量、高度、宽度和长度添加这些方法,这似乎有点冗长(12个方法(

什么是可重复使用的(Laravel(方法来处理这个问题?

也欢迎更好的命名建议

创建自定义演员阵容https://laravel.com/docs/8.x/eloquent-mutators#custom-铸造

像这个

class MeasureCast implements CastsAttributes
{
public function get($model, string $key, $value, array $attributes)
{
return $value / 100;
}
public function set($model, string $key, $value, array $attributes)
{
return $value * 100;
}
public static function print($value): string
{
return $value . ' LBS';
}
}

在模型中

protected $casts = [
'weight' => MeasureCast::class,
];

它有助于以正确的格式保存/读取。

当你想要打印-写MeasureCast::print($invoice->amount_due)

最新更新