laravel中的货币格式



你能帮我根据模型货币格式化Laravel刀片中的金额数字吗?Value存储为double类型,currency存储为char(3) 'usd ',' eur ',' czk ',' huf '…

项目必须以给定的货币格式显示:

| 1 | project A | $1,250.00   |
| 2 | project B | €6,000.00   |
| 3 | project C | 1,250.00CZK |

PHP money_format使用区域设置,我想在每行或每个项目页面中使用项目特定的货币。

您可以实现自己的转换器,如下所示:

在你的控制器

public function getRows(Request $request, CurrencyTransformer $transformer) {
    
    // get data
    $rows = Model::where('some', 'condition')->get()->toArray();
    $data = $transformer->transformCollection($rows);
    return view('some.view', compact('data'));
}

创建抽象转换器类

abstract class Transformer
{
    
    public function transformCollection(array $items)
    {
        return array_map([$this, 'transform'], $items);
    }
    public abstract function transform($item);
}

创建货币转换器

class CurrencyTransformer extends Transformer
{
    
    public function transform($item) {
        switch($item['currency']) {
            case "usd":
                $item['value'] = "$" . $item['value'];
                break;
            ...
        }
  
        return $item;
    }
}

最新更新