---
title: "Modely s kreditmi — Credits for Laravel | Roundly"
description: "Implementujte Creditable a použite HasCredits na ľubovoľnom Eloquent modeli — používateľ, tím, účet — a získa knihu pohybov aj zostatok."
url: https://roundly-consulting.com/sk/open-source/navody/credits-for-laravel/modely-s-kreditmi
language: sk
---

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

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

# Modely s kreditmi

Implementujte na ľubovoľnom Eloquent modeli rozhranie Creditable a použite trait HasCredits. Trait poskytuje všetky metódy, ktoré rozhranie deklaruje:

```php
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Credits\Interfaces\Creditable;
use RoundlyConsulting\Credits\Traits\HasCredits;

final class User extends Model implements Creditable
{
    use HasCredits;
}
```

Rozhranie nevynechávajte. Každé API prijíma vlastníka ako Model&Creditable, takže model, ktorý používa len trait, zlyhá na TypeError hneď pri prvom volaní (statická analýza to odhalí ešte skôr) a credits:modify každú entitu bez Creditable preskočí.

## Akýkoľvek model, nielen používatelia

Kredity sa pripájajú polymorfne, takže tímy, organizácie, projekty či zariadenia môžu mať v tej istej tabuľke každý vlastný zostatok:

```php
final class Team extends Model implements Creditable
{
    use HasCredits;
}

Credits::for($team)->add(5000, 'prepaid API calls');
Credits::for($team)->balance();         // 5000
$team->creditsBalance();                // 5000 — the same read through the trait
```

## Čo trait pridáva

| Metóda | Vracia | Účel |
| --- | --- | --- |
| `credits()` | MorphMany | Všetky záznamy knihy pohybov, ktoré entita vlastní. |
| `modifyCredits($amount, $description, $meta, $allowOverdraft, $bucket)` | Credit | Pridá pripísanie (kladné) alebo odpis (záporné). |
| `setCreditsTo($amount, $description, $meta, $allowOverdraft, $bucket)` | ?Credit | Zaznamená rozdiel k presnému zostatku; null, ak sa nič nemení. |
| `creditsBalance($at, $bucket)` | int | Zostatok jednej skupiny, voliteľne k danému okamihu. |
| `hasCredits($amount = 1, $at, $bucket)` | bool | Zostatok je aspoň $amount. |
| `creditsBalanceForBuckets($buckets, $at)` | int | Súčet uvedených skupín. |
| `totalCreditsBalance($at)` | int | Súčet všetkých skupín. |
| `displayCredits($amount, $scale, $rounding)` | string | Ľubovoľné celé číslo ako desatinný reťazec bez lokalizácie. |
| `displayCreditsBalance($bucket, $scale, $rounding, $at)` | string | Zostatok skupiny ako desatinný reťazec bez lokalizácie. |
| `creditsCurrency($bucket)` | ?Currency | Mena skupiny z money, alebo null pre bežné kredity. |
| `creditsBalanceMoney($bucket, $at)` | Money | Zostatok skupiny v mene ako Money. |
| `modifyCreditsMoney($amount, $description, $meta, $allowOverdraft, $bucket)` | Credit | Pripíše alebo odpíše Money v mene skupiny. |
| `formatCreditsBalance($bucket, $locale)` | string | Zostatok skupiny v mene cez lokalizovaný formátovač money. |

Každé čítanie aj zápis prijíma voliteľnú skupinu; bez nej sa použije nakonfigurovaná default\_bucket. Každé čítanie prijíma voliteľný okamih ($at, ľubovoľný CarbonInterface). Každá metóda je skratkou pre to isté volanie cez Credits::for($this) — pozrite Fasáda Credits.

## 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/credits-for-laravel.md)
