You can install the package in to a Laravel app that uses Nova via composer:
composer require vyuldashev/nova-money-field
In resource:
// ...
use Vyuldashev\NovaMoneyField\Money;
public function fields(Request $request)
{
return [
// ...
Money::make('Balance'),
];
}
USD currency is used by default, you can change this by passing second argument:
Money::make('Balance', 'EUR'),
You may use locale
method to define locale for formatting value, by default value will be formatted using browser locale:
Money::make('Balance')->locale('ru-RU'),
If you store money values in database in minor units use storedInMinorUnits
method. Field will automatically convert minor units to base value for displaying and to minor units for storing:
Money::make('Balance', 'EUR')->storedInMinorUnits(),
If you need to use a name that doesn't convert to the column name (eg 'Balance' as name and remaining_balance
as column) you can pass this as the 3rd argument to the make/constructor.
Please Note: that this, along with all field column names, should be present and usable within your model class else you may encounter SQL errors.
Money::make('Balance', 'EUR', 'remaining_balance'),