在Laravel中使用number_format方法

时间:2014-12-26 00:25:23

标签: php laravel

我在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)上使用它,但它没有用。

5 个答案:

答案 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