---
title: "Ceny — Advertisements for Laravel | Roundly"
description: "Ceny sú presné hodnoty Money v stĺpci decimal(38,0) v najmenších jednotkách — žiadne floaty, bezpečné zápisy mien, číselné radenie a API resources."
url: https://roundly-consulting.com/sk/open-source/navody/advertisements-for-laravel/ceny
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Advertisements for Laravel](https://roundly-consulting.com/sk/open-source/navody/advertisements-for-laravel.md)

# Ceny

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.

```php
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:

```php
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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/advertisements-for-laravel.md)
