---
title: "Udalosti — Credits for Laravel | Roundly"
description: "Reagujte na každú zaznamenanú zmenu cez udalosť CreditsModified — vlastník, nový záznam a nový zostatok skupiny."
url: https://roundly-consulting.com/sk/open-source/navody/credits-for-laravel/udalosti
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)

# Udalosti

RoundlyConsulting\\Credits\\Events\\CreditsModified sa spustí po každej zaznamenanej zmene. Nesie entitu s kreditmi, nový záznam Credit a výsledný zostatok:

```php
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Credits\Events\CreditsModified;

Event::listen(function (CreditsModified $event): void {
    // $event->creditable, $event->credit, $event->balance
});
```

## Obsah udalosti

```php
final class CreditsModified implements ShouldDispatchAfterCommit
{
    use Dispatchable;

    public function __construct(
        public readonly Model&Creditable $creditable,
        public readonly Credit $credit,
        public readonly int $balance,   // the bucket's balance this change produced
    ) {}
}
```

balance je zostatok skupiny, ktorá sa zmenila — zistíte ju z $event->credit->bucket — nie súčet naprieč skupinami. Je to zostatok, ktorý táto zmena vytvorila, načítaný pod zámkom vlastníka v transakcii zmeny, takže doň nikdy nepresiakne súbežná zmena.

## Kedy sa spúšťa

- Po každom úspešnom zápise — add(), deduct(), modify(), setTo() a ich podobách pre Money na scope, ako aj príslušných metódach traitu — a pre každú entitu, ktorú zmení credits:modify.
- Až keď je zmena potvrdená: CreditsModified implementuje ShouldDispatchAfterCommit, takže v setTo() alebo vo vašej vlastnej DB::transaction() ju listenery dostanú až po potvrdení vonkajšej transakcie — a pri zmene, ktorá sa vráti späť, vôbec. Listener, ktorý vyhodí výnimku, zmenu nevráti; ak ju chcete zastaviť, overte podmienky ešte pred zmenou.
- Nie, keď je setCreditsTo() bez účinku, lebo zostatok už sedí.
- Nie, keď zmenu odmietne ochrana pred prečerpaním, 64-bitový limit alebo kontrola meny — nič sa nezapísalo.

## Listener

Pošlite potvrdenie, aktualizujte dashboard alebo upozornite na nízky zostatok:

```php
use Illuminate\Support\Facades\Log;

Event::listen(function (CreditsModified $event): void {
    Log::info("Balance for {$event->creditable->getKey()} is now {$event->balance}");

    if ($event->credit->amount < 0 && $event->balance < 10) {
        // $event->credit->bucket is running low — notify the owner
    }
});
```

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