如何在Laravel中为模型中的所有货币字段(十进制属性)添加逗号

如何在Laravel中为模型中的所有货币字段(十进制属性)添加逗号,laravel,laravel-8,Laravel,Laravel 8,我正在做一个项目,我在每个模型中都有很多十进制字段,我想把它们全部用逗号括起来。 在获取时,我可以使用helper mutators或PHPnumber\u format()。问题是我必须在每个领域都这样做 有什么简单的解决办法吗 要使用逗号形式 创建表单示例: 索引页/显示页示例: 最好的方法是使用自定义类型转换: 比如说 创建ReadableNumber类: <?php namespace App\Casts; use Illuminate\Contracts\Database

我正在做一个项目,我在每个模型中都有很多十进制字段,我想把它们全部用逗号括起来。 在获取时,我可以使用helper mutators或PHP
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 }}