NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Stĺpec price sa cez AsMoney::currencyColumn('currency') z money-for-laravel mapuje na RoundlyConsulting\Money\Money: suma je v price v najmenších jednotkách meny (stĺpec decimal(38,0)), kód meny v currency.

use RoundlyConsulting\Money\Money;

$ad->price = Money::ofMajor('15.00', 'EUR');
$ad->price->minor();        // "1500" — a string, never (int)-cast it
$ad->price->toDecimal();    // "15.00"
$ad->price->format('sk');   // formatted for the Slovak locale
$ad->currency;              // "EUR"

$ad->price?->add(Money::ofMinor(500, 'EUR'));      // money's API; mismatched currencies throw CurrencyMismatch

Advertisement::query()->orderBy('price')->get();   // numeric order

Pravidlá

  • Priradiť možno len Money|null; čokoľvek iné vyhodí RoundlyConsulting\Money\Exceptions\InvalidMoneyValue.
  • Priradenie ceny v inej mene reklame, ktorá už cenu má, vyhodí CurrencyMismatch — ak chcete menu zmeniť zámerne, najprv nastavte currency (UpdateAdvertisement to urobí za vás).
  • Zápis null vymaže sumu a currency ponechá.
  • PostgreSQL a MySQL uložia všetkých 38 číslic; SQLite je presné len v rozsahu int64, preto tam cast širšie sumy odmietne (InvalidMoneyValue) namiesto tichého uloženia floatu.
  • Záložná textová reklama vypíše $ad->price->format() v aktívnom jazyku.

API resources

Cenu vypíšte cez resource balíka money — from() pri reklame bez ceny vráti null:

use RoundlyConsulting\Money\Http\Resources\MoneyResource;

'price' => MoneyResource::from($ad->price),
// {"minor":"1999","decimal":"19.99","currency":"EUR","exponent":2,"formatted":"…"}
// "formatted" follows the active app locale: app()->setLocale('sk') changes it

minor je v JSON zámerne reťazec; frontend, ktorý s cenou počíta, číta decimal (alebo BigInt(minor)). formatted sa riadi aktívnym jazykom aplikácie (app()->setLocale()), takže sa mení s jazykom požiadavky — zobrazujte ho, nikdy ho neparsujte. Aritmetiku, formátovanie, meny a zaokrúhľovanie popisuje dokumentácia Money for Laravel.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.