Php Laravel格式\u数字雄辩

Php Laravel格式\u数字雄辩,php,laravel,Php,Laravel,我正在使用Laravel创建一个REST API,这是我的产品的一个简单版本雄辩模型: - id - name - price (float) 以下是价格示例:37.271926.45293 根据,我创建此函数是为了向产品添加一个新属性: public function getMagicPriceAttribute($magic) { return round($magic * $this->price, 2); } 为了给用户更好的体验,我需要将price格式化为37,271

我正在使用Laravel创建一个REST API,这是我的
产品的一个简单版本
雄辩模型:

- id
- name
- price (float)
以下是价格示例:
37.27
1926.45
293

根据,我创建此函数是为了向
产品添加一个新属性

public function getMagicPriceAttribute($magic)
{
    return round($magic * $this->price, 2);
}
为了给用户更好的体验,我需要将
price
格式化为
37,27
1.926,45
293

所以我创造了:

public function getPriceAttribute($price)
{
    return number_format($price);
}
price
现在已根据需要格式化,但给定的
number\u格式
返回一个
字符串
getMagicPriceAttribute
工作不正常并引发错误


有没有更好的方法来处理这个问题?

它返回字符串有什么不对?您遇到了什么错误?在尝试乘法之前,您始终可以将其转换为正确的类型:
返回回合($magic*(float)$this->price,2)
,甚至在
getPriceAttribute()
函数中,
返回(浮动)数字\u格式($price)注意:这将把无效的数字(
number\u format('a')
->
null
)格式化为
0.0
格式(为了获得更好的体验)是一件
演示
的事情,因此,最好在演示层(也称为前端)中完成。另外,对于涉及存储货币值的价格/列,避免使用
float
和使用
decimal
数据类型也是常见的建议。