我在Laravel和Blade模板中相当新 任何人都可以帮我告诉我该怎么做?
我有这样的观点:
@foreach ($Expenses as $Expense)
<tr>
<td>{{{ $Expense->type }}}</td>
<td>{{{ $Expense->narration }}}</td>
<td>{{{ $Expense->price }}}</td>
<td>{{{ $Expense->quantity }}}</td>
<td>{{{ $Expense->amount }}}</td>
</tr>
@endforeach
我想要格式化$Expense->price
和$Expense->amount
我尝试在$Expense->amount
number_format($Expense->amount)
上使用它,但它没有用。
答案 0 :(得分:67)
这应该有效:
<td>{{ number_format($Expense->price, 2) }}</td>
答案 1 :(得分:7)
如果您使用的是Eloquent,请在您的模型中输入:
public function getPriceAttribute($price)
{
return $this->attributes['price'] = sprintf('U$ %s', number_format($price, 2));
}
在哪里获取价格属性是您在数据库中的字段。得到的的东西属性。
答案 2 :(得分:4)
如果您使用Eloquent,最佳解决方案是:
public function getFormattedPriceAttribute()
{
return number_format($this->attributes['price'], 2);
}
所以现在你必须在你的模型中附加formattedPrice,你可以同时使用price(原始状态)和formattedPrice。
答案 3 :(得分:2)
这是另一种方法,添加app \ Providers \ AppServiceProvider.php
use Illuminate\Support\Str;
...
public function boot()
{
// add Str::currency macro
Str::macro('currency', function ($price)
{
return number_format($price, 2, '.', '\'');
});
}
然后在刀片模板中或直接在Expense模型中使用Str :: currency()。
@foreach ($Expenses as $Expense)
<tr>
<td>{{{ $Expense->type }}}</td>
<td>{{{ $Expense->narration }}}</td>
<td>{{{ Str::currency($Expense->price) }}}</td>
<td>{{{ $Expense->quantity }}}</td>
<td>{{{ Str::currency($Expense->amount) }}}</td>
</tr>
@endforeach
答案 4 :(得分:0)
这有效,使用此代码:
示例:
$number = 1234.56;
$format_number = number_format($number);
有关 number_format() 的更多信息,请参阅链接:https://www.php.net/manual/en/function.number-format.php