2017-10-20 11 views
0

私は、ブレードファイルの多くの場所で通貨フォーマットを使用しています。私は適切な通貨形式を表示するためにnumber_formatを使用しています。私はそれは私が多くの場所でtoFixed(2)を使用しています入力フィールドのも、このlaravelの通貨フォーマット

<p>${{ $row->nCashInitialBalance }}</p> // $1123 
<p>${{ $row->nCashCalculatedBalance }}</p> // $300.5 
<p>${{ $row->nCashPaymentsReceived }}</p> // $2341.15 
<p>${{ $row->nCardFinalBalance }}</p> // $234.1 

のように見える、それを使用していないのであれば、それはこの

<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 

のように見えます。

#nDiscount_fixed").val() = parseFloat($("#nDiscount_fixed").val()).toFixed(2); 

すべての変数を適切な通貨形式として表示する最も簡単な方法はありませんか?私はnumber_formattoFixed(2)をほぼ50回以上使っています。

+0

HTTP([money_format]お試しください://php.net/money_format)!! – Maraboc

答えて

1

あなたはcustom Laravel directiveを作成することができます。あなたはそれでも必要な場所でそのディレクティブを呼び出す必要がありますが、コードを変更したい場合(たとえばnumber_formatを何か他のものに置き換える)、そのディレクティブを更新すればよいという利点があります。

例(あなたAppServiceProviderboot方法で)(ドキュメントから撮影し、あなたのユースケース用に更新):

Blade::directive('convert', function ($money) { 
    return "<?php echo number_format($money, 2); ?>"; 
}); 

をブレードにで使用するには:

@convert($var) 
+0

私は '' 'number_format($ money、2)' ''を書くたびに短いと思います。 money_format(https://github.com/rec/laravel-money)を使用している場合は です。私はまだ変数をラップする必要がありますか?すなわち@money(500、 'BRL')? – Johnny

+0

必ずしもそうとは限りませんが、もしあなたがすれば、特定のコードを1か所に持つことの利点が得られます。たとえば、別のパッケージを見つけた場合に変更するのが簡単になります。そのパッケージに含まれているBladeディレクティブはすばらしく見えます。 –

1

AppServiceProviderファイルのboot()メソッドにcustom Blade directiveを追加できます。例えば

Blade::directive('money', function ($amount) { 
    return "<?php echo '$' . number_format($amount, 2); ?>"; 
}); 

そして、あなたのブレード・ファイル内の、あなただけのこのような@money()を使用する必要があります:

@money($yourVariable) 
関連する問題