---
title: "Udalosti — Attributes for Laravel | Roundly"
description: "Reagujte na zmeny atribútov cez AttributeAttached, AttributeDetached a AttributesSynced — pre audit, reindexáciu či synchronizáciu."
url: https://roundly-consulting.com/sk/open-source/navody/attributes-for-laravel/udalosti
language: sk
---

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

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

# Udalosti

Počúvajte tieto udalosti a rozšírte správanie aplikácie — auditné záznamy, reindexácia vyhľadávania, synchronizácia s inými systémami. Všetky sú v RoundlyConsulting\\Attributes\\Events:

| Udalosť | Vlastnosti | Spúšťa ju |
| --- | --- | --- |
| `AttributeAttached` | owner, attribute | Každý zápis hodnoty či metadát: set(), setMany(), stage()->save() a meta() (aj ich metódy na modeli) — a raz pre každú hodnotu v sync(). |
| `AttributeDetached` | owner, name | forget(), forgetExcept(), atribúty navyše, ktoré odstráni sync() (aj ich metódy na modeli), a trvalé zmazanie vlastníka — raz pre každý názov, ktorý bol naozaj pripojený. |
| `AttributesSynced` | owner, attributes | sync(), stage()->sync() a syncAttributes(), keď sú pripojené všetky hodnoty. attributes je list<AttributeData>. |

```php
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Attributes\Events\AttributeAttached;
use RoundlyConsulting\Attributes\Events\AttributeDetached;
use RoundlyConsulting\Attributes\Events\AttributesSynced;

Event::listen(function (AttributeAttached $event): void {
    $event->owner;              // the model the attribute belongs to
    $event->attribute->name;    // 'color'
    $event->attribute->value;   // typed value
});

Event::listen(function (AttributeDetached $event): void {
    $event->owner;
    $event->name;               // 'color'
});

Event::listen(function (AttributesSynced $event): void {
    $event->owner;
    $event->attributes;         // list<AttributeData>: ->name, ->value, ->meta
});
```

Udalosti sa spúšťajú až po commite transakcie zápisu (implementujú ShouldDispatchAfterCommit), takže zápis vrátený rollbackom sa nikdy neohlási — a hodnota, ktorá neprejde prísnym režimom, validáciou alebo kontrolou jedinečnosti, nespustí nič.

## Trieda listenera

Uveďte udalosť ako typ parametra v metóde handle() listenera a objavovanie udalostí v Laraveli ho zaregistruje samo:

```php
namespace App\Listeners;

use App\Models\Product;
use RoundlyConsulting\Attributes\Events\AttributeAttached;

final class ReindexProductOnAttributeChange
{
    public function handle(AttributeAttached $event): void
    {
        if (! $event->owner instanceof Product) {
            return;
        }

        // re-index $event->owner in your search engine
    }
}
```

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