Php Laravel格式\u数字雄辩
我正在使用Laravel创建一个REST API,这是我的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
产品的一个简单版本
雄辩模型:
- 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
数据类型也是常见的建议。