如何在Laravel中为模型中的所有货币字段(十进制属性)添加逗号
我正在做一个项目,我在每个模型中都有很多十进制字段,我想把它们全部用逗号括起来。 在获取时,我可以使用helper mutators或PHP如何在Laravel中为模型中的所有货币字段(十进制属性)添加逗号,laravel,laravel-8,Laravel,Laravel 8,我正在做一个项目,我在每个模型中都有很多十进制字段,我想把它们全部用逗号括起来。 在获取时,我可以使用helper mutators或PHPnumber\u format()。问题是我必须在每个领域都这样做 有什么简单的解决办法吗 要使用逗号形式 创建表单示例: 索引页/显示页示例: 最好的方法是使用自定义类型转换: 比如说 创建ReadableNumber类: <?php namespace App\Casts; use Illuminate\Contracts\Database
number\u format()
。问题是我必须在每个领域都这样做
有什么简单的解决办法吗
要使用逗号形式创建表单示例: 索引页/显示页示例:
最好的方法是使用自定义类型转换: 比如说 创建ReadableNumber类:
<?php
namespace App\Casts;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
class ReadableNumber implements CastsAttributes
{
/**
* Prepare the given value for storage.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param array $value
* @param array $attributes
* @return string
*/
public function get($model, $key, $value, $attributes)
{
return number_format($value, 2, ',', ' ');
}
public function set($model, $key, $value, $attributes)
{
return str_replace(" ", "", str_replace(",", ".", $value));
}
}
然后在您的刀片Vue中:
{{ $appart->value }}
将显示:
3000,00
尝试此number\u格式(“1000000”,2,“,”,“,”,”)代码>此处数字\格式(数字、小数、小数点、分隔符)代码>我认为在前端执行此操作比在数据库端使用JavaScript或生成该页面的刀片代码更好。变异体甚至不适合这种问题,因为它们在试图操纵代码中的值时也会造成混乱,因为将数字转换为无法轻松转换的字符串可能是一个更好的主意(如上所述),但是,您可以使用a来处理类似这样的问题:漂亮且干净!确保使用CastSatAttributes而不是CastsInboundAttributes,否则将不会调用getter。
{{ $appart->value }}