我在我的刀片文件中的很多地方使用货币格式。我使用number_format来显示正确的货币格式。所以它看起来像这样
<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)
和const winston = require('winston')
const logLevels = {
levels: {
emerg: 0,
alert: 1,
crit: 2,
error: 3,
warning: 4,
notice: 5,
info: 6,
debug: 7
},
colors: {
emerg: 'red',
alert: 'red',
crit: 'red',
error: 'red',
warning: 'yellow',
notice: 'blue',
info: 'green',
debug: 'green'
}
}
winston.addColors(logLevels)
const logger = winston.createLogger({
levels: logLevels.levels,
transports: [
new winston.transports.Console({
format: winston.format.simple(),
colorize: true
})
]
});
logger.info('server starting...', {date: new Date()})
差不多50次。
答案 0 :(得分:9)
您可以创建custom Laravel directive。您仍然需要在您需要的每个地方调用该指令,但如果您想要更改代码(例如将number_format替换为其他内容),则需要更新该指令。
示例(取自文档并针对您的用例进行了更新)(在您的AppServiceProvider
boot
方法中):
Blade::directive('convert', function ($money) {
return "<?php echo number_format($money, 2); ?>";
});
在Blade中使用:
@convert($var)
答案 1 :(得分:5)
您可以在AppServiceProvider文件的boot()
方法中添加custom Blade directive。
例如:
Blade::directive('money', function ($amount) {
return "<?php echo '$' . number_format($amount, 2); ?>";
});
在您的Blade文件中,您只需使用@money()
,就像这样:
@money($yourVariable)
答案 2 :(得分:3)
我最不会使用“指令”......我发现在模型上使用与访问器相同的逻辑更清晰。
public function getAmountAttribute($value)
{
return money_format('$%i', $value);
}
答案 3 :(得分:0)
如果要设置负数的格式,则需要采用以下方式:
Blade::directive('money', function ($amount) {
return "<?php
if($amount < 0) {
$amount *= -1;
echo '-$' . number_format($amount, 2);
} else {
echo '$' . number_format($amount, 2);
}
?>";
});
在刀片文件中使用:
@money(-10)
如果您对指令进行编辑,则需要清除视图:
php artisan view:clear
答案 4 :(得分:0)
如果您使用 Laravel Cashier
,您可以使用 Laravel 内置的 formatAmount()
方法。
在 boot()
AppServiceProvider
方法中
Blade::directive('money', function ($expression) {
return "<?php echo laravel\Cashier\Cashier::formatAmount($expression, 'gbp'); ?>";
});
在您的刀片视图中
Total: @money($proudct->price)
产出 - 总计:£100.00
注意:
php artisan config:clear
答案 5 :(得分:-4)
使用此解决方案:
{{"$ " . number_format($data['total'], 0, ",", ".") }}