J'utilise le format monétaire à de nombreux endroits dans mes fichiers Blade. J'utilise number_format pour afficher un format de devise approprié. Donc ça ressemble à ça
<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
si je ne l'utilise pas ça ressemble à ça
<p>${{ $row->nCashInitialBalance }}</p> // $1123
<p>${{ $row->nCashCalculatedBalance }}</p> // $300.5
<p>${{ $row->nCashPaymentsReceived }}</p> // $2341.15
<p>${{ $row->nCardFinalBalance }}</p> // $234.1
Aussi pour les champs de saisie j'utilise toFixed(2)
dans beaucoup d'endroits.
#nDiscount_fixed").val() = parseFloat( $("#nDiscount_fixed").val()).toFixed(2);
N'y a-t-il pas un moyen le plus simple d'afficher toutes les variables comme format monétaire approprié? J'ai utilisé number_format
Et toFixed(2)
presque plus de 50 fois maintenant.
Vous pouvez créer une personnalisée Laravel . Vous devez toujours appeler cette directive à chaque endroit où vous en avez besoin, mais elle présente l'avantage que si vous souhaitez modifier la code (par exemple remplacer number_format par quelque chose d'autre) vous n'avez qu'à mettre à jour cette directive.
Exemple (extrait de la documentation et mis à jour pour votre cas d'utilisation) (dans votre méthode AppServiceProvider
boot
):
Blade::directive('convert', function ($money) {
return "<?php echo number_format($money, 2); ?>";
});
Pour utiliser dans dans Blade:
@convert($var)
Vous pouvez ajouter une directive Blade personnalisée dans la méthode boot()
dans votre fichier AppServiceProvider.php
.
Par exemple:
Blade::directive('money', function ($amount) {
return "<?php echo '$' . number_format($amount, 2); ?>";
});
Et dans votre fichier Blade, il vous suffira d'utiliser @money()
comme ceci:
@money($yourVariable)
Je n'utiliserais surtout pas de "directive" ... Je l'ai trouvé plus propre pour faire la même logique qu'un accesseur sur le modèle.
public function getAmountAttribute($value)
{
return money_format('$%i', $value);
}