我目前正在处理很多测量,我知道如果手动进行,从长远来看可能会导致很多问题。
例如:我将权重($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)