๐ 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:
- In the desired Model, add the cast to the desired attribute. Just like the example below:
<? 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'
];
}
- Send a request to the equivalent endpoint informing the
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"
}
]
- First, run:
composer require ejetar/laravel-decimal-locale
- After, add
Ejetar\DecimalLocale\Providers\AppServiceProvider::class
inproviders
array in config/app.php file
Nothing 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.