🔄 Cast your model attributes to the decimal format of another location.
ejetar/laravel-decimal-locale is a Laravel package for 🔄 cast your model attributes to the decimal format of another location..
It currently has 4 GitHub stars and 6 downloads on Packagist (latest version 1.0.0).
Install it with composer require ejetar/laravel-decimal-locale.
Discover more Laravel packages by ejetar
or browse all Laravel packages to compare alternatives.
Last updated
🔄 Cast your model attributes to the decimal format of another location.
The laravel-decimal-locale library allows you to convert decimal numbers to the format of different locations.
Example
1000.5 to: Locale Code|Locale Name|Result ------|----|----- ...|...|... af|Afrikaans|1.000,5 ar|Arabic|1,000.5 ar-AE|Arabic (U.A.E.)|١٬٠٠٠٫٥ bg-BG|Bulgarian (Bulgaria)|1000,5 cs|Czech|1 000,5 de-CH|German (Switzerland)|1’000.5 ...|...|...
This library was born with the main objective of providing, in a simple way, the possibility of converting decimal numbers into API responses. Therefore, currently there is only one way to inform the application what the location you want is by request, through the DecimalLocale header. You are free to expand the possibilities of this solution, I will be very happy to receive your contribution. :)
But let's get down to business...
This package provides an attribute conversion class called Decimal. All you need to do is:
<? php
namespace App;
use Ejetar\DecimalLocale\Casts\Decimal;
use Illuminate\Database\Eloquent\Model;
class Product extends Model {
protected $casts = [
'price' => Decimal::class,
];
protected $fillable = [
'id',
'price',
'name'
];
}
DecimalLocale header. Example:GET /api/v1/products
DecimalLocale: pt-br
Laravel 7+
GET /api/v1/products
DecimalLocale: en
[
{
"id": 1,
"name":"Gold Ball",
"value": "1,000.5",
"created_at": "2019-04-24 20:34:03",
"updated_at": "2019-04-24 20:34:03"
}
]
GET /api/v1/products
DecimalLocale: pt-br
[
{
"id": 1,
"name":"Gold Ball",
"value": "1.000,5",
"created_at": "2019-04-24 20:34:03",
"updated_at": "2019-04-24 20:34:03"
}
]
GET /api/v1/products
Without DecimalLocale header.
[
{
"id": 1,
"name":"Gold Ball",
"value": 1000.5,
"created_at": "2019-04-24 20:34:03",
"updated_at": "2019-04-24 20:34:03"
}
]
composer require ejetar/laravel-decimal-localeEjetar\DecimalLocale\Providers\AppServiceProvider::class in providers array in config/app.php fileNothing for now...
Contribute to this wonderful project, it will be a pleasure to have you with us. Let's help the free software community. You are invited to incorporate new features, make corrections, report bugs, and any other form of support. Don't forget to star in this repository! 😀
This library is a open-source software licensed under the MIT license.