laravel中的货币格式

时间:2016-10-25 20:04:03

标签: php laravel blade

你能帮我看一下基于型号货币的Laravel刀片中的格式数量数字吗?值存储为double和currency,如char(3)' usd',' eur',' czk& #39;,' huf' ...

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

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

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

1 个答案:

答案 0 :(得分:0)

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

在您的控制器中

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;

    }
}