你能帮我根据模型货币格式化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;
}
}