我在我的blade文件中的很多地方都使用了货币格式。我使用number_format来显示正确的货币格式。所以它看起来像这样
<p>${{ number_format($row->nCashInitialBalance, 2) }}</p> // $1,123.00
<p>${{ number_format($row->nCashCalculatedBalance, 2) }}</p> // $300.50
<p>${{ number_format($row->nCashPaymentsReceived, 2) }}</p> // $2,341.15
<p>${{ number_format($row->nCardFinalBalance, 2)}}</p> // $234.10
如果我不使用它它看起来像这样
<p>${{ $row->nCashInitialBalance }}</p> // $1123
<p>${{ $row->nCashCalculatedBalance }}</p> // $300.5
<p>${{ $row->nCashPaymentsReceived }}</p> // $2341.15
<p>${{ $row->nCardFinalBalance }}</p> // $234.1
同样,对于输入字段,我在很多地方使用toFixed(2)
。
#nDiscount_fixed").val() = parseFloat( $("#nDiscount_fixed").val()).toFixed(2);
有没有一个最简单的方法来显示所有的变量为适当的货币格式?我已经使用number_format
和toFixed(2)
几乎超过50次了。
8条答案
按热度按时间djp7away1#
您可以创建一个自定义的Laravel指令。您仍然需要在每个需要它的地方调用该指令,但这样做的好处是,如果您想更改代码(例如,用其他内容替换number_format),您只需更新该指令。
示例(摘自文档并针对您的用例进行了更新)(在您的
AppServiceProvider
boot
方法中):要在Blade中使用它,请执行以下操作:
yquaqz182#
您可以在
AppServiceProvider.php
文件的boot()
方法中添加自定义Blade指令。例如:
在您的Blade文件中,您只需使用
@money()
,如下所示:0ejtzxu13#
我最不会使用“指令”...我发现在模型上做与访问器相同的逻辑更干净。
u0njafvf4#
如果要设置负数的格式,则需要按以下方式操作:
在刀片文件中用途:
如果对指令进行编辑,则需要清除视图:
iqjalb3h5#
如果您使用的是
Laravel Cashier
,则可以使用Laravel内置的formatAmount()
方法。在
AppServiceProvider
中的boot()
方法在您的刀片视图中
Total: @money($proudct->price)
输出-总计:100英镑
注意事项:
php artisan config:clear
kcwpcxri6#
查看my money package的PHP(Laravel)。
在配置中,您可以选择小数点后的小数位数和货币来源(int或float):
在此之后,所有货币对象将有2个小数位。对于INT原点,100$将为10000(100 * 10^2)数字。
然后创建一个示例并显示它:
您可以通过将其传递给
money()
helper函数,轻松地添加每个对象的自定义显示,或者通过设置配置文件,将其应用于所有其他对象。nqwrtyyt7#
您可以使用PHP的内置NumberFormatter。对于Laravel,将其 Package 在
directive
中或在模型中使用accessor
,这取决于您或它取决于您确切需要格式的情况。PHP 8
支持此功能currency
、十进制数字中的金额、百分比值等。locale
,例如en_US
OOP Style
Procedural Style
93ze6v8z8#
使用此解决方案: