PHP code example of elegantly / laravel-money

1. Go to this page and download the library: Download elegantly/laravel-money library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

elegantly / laravel-money example snippets


return [
    'default_currency' => 'USD',
];

Schema::create('invoices', function (Blueprint $table) {
    $table->id();
    $table->bigInteger('amount'); // Store in cents
    $table->string('currency', 3); // ISO currency code
    $table->timestamps();
});

use Elegantly\Money\MoneyCast;

/**
 * @property ?Money $amount
 * @property ?string $currency
 **/
class Invoice extends Model {
    /**
     * @return array<string, string>
     */
    protected function casts(): array
    {
        return [
            'amount' => MoneyCast::class . ':currency'
        ];
    }
}

use Elegantly\Money\MoneyCast;

/**
 * @property ?Money $price
 * @property ?Money $cost
 **/
class Invoice extends Model {
     /**
     * @return array<string, string>
     */
    protected function casts(): array
    {
        return [
            'cost' => MoneyCast::class . ':EUR',
            'price' => MoneyCast::class . ':USD'
        ];
    }
}

use Elegantly\Money\MoneyParser;

MoneyParser::parse(null, 'EUR'); // null
MoneyParser::parse(110, 'EUR'); // 110.00€
MoneyParser::parse(100.10, 'EUR'); // 100.10€
MoneyParser::parse('', 'EUR'); // null
MoneyParser::parse('1', 'EUR'); // 1.00€
MoneyParser::parse('100.10', 'EUR'); // 100.10€

namespace App\Livewire;

use Elegantly\Money\Rules\ValidMoney;
use Illuminate\Foundation\Http\FormRequest;

class CustomComponent extends Component
{
    #[Validate([
        new ValidMoney(nullable: false, min: 0, max: 100)
    ])]
    public ?int $price = null;
}

namespace App\Http\Requests;

use Elegantly\Money\Rules\ValidMoney;
use Illuminate\Foundation\Http\FormRequest;

class CustomFormRequest extends FormRequest
{
    public function rules()
    {
        return [
            'price' => [
                new ValidMoney(
                    nullable: false,
                    min: 0,
                    max: 100
                )
            ],
        ];
    }
}
bash
php artisan vendor:publish --tag="money-config"