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

Každá udalosť je final readonly trieda v RoundlyConsulting\Tags\Events, ktorá implementuje ShouldDispatchAfterCommit — spustí sa až po potvrdení zmeny, nikdy pri odvolaní:

UdalosťPayloadSpustí sa, keď
Taggedtaggable, tagsK modelu boli pripojené štítky (attach alebo sync) — len ak sa niečo zmenilo.
Untaggedtaggable, tagsŠtítky boli odpojené (detach, sync, clear, natrvalo zmazaný model) — len ak sa niečo zmenilo.
TagCreatedtagVznikol štítok — cez katalóg alebo pre nový voľný názov pri označovaní.
TagUpdatedtag, changedZmenil sa názov, popis, slug, farba alebo ikona; changed uvádza ktoré.
TagMovedtag, from, toNový rodič alebo nová pozícia; from / to sú starý a nový rodič (null: koreň).
TagsReorderedtype, parent, tagsSúrodenci pod rodičom (pri null korene) boli preusporiadaní; tags v novom poradí.
TagDeletedtag, detached, subtreeŠtítok (a s TagChildren::Delete jeho podstrom) bol zmazaný a všade odpojený; detached je počet odstránených priradení. Untagged pre jednotlivé modely sa nespustí.
TagRestoredtagZmazaný štítok sa vrátil — restore() alebo create, findOrCreate, attach či sync názvu, ktorý držal. Nemá žiadne priradenia.
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Tags\Events\TagDeleted;
use RoundlyConsulting\Tags\Events\Tagged;
use RoundlyConsulting\Tags\Events\Untagged;

Event::listen(function (Tagged $event): void {
    // $event->taggable — the model; $event->tags — list<Tag> this write attached
});

Event::listen(function (Untagged $event): void {
    // $event->tags — list<Tag> this write detached (a detach, a sync, a clear, a force delete)
});

// A deleted tag fires no per-model Untagged: react to it once, here
Event::listen(function (TagDeleted $event): void {
    // $event->tag, $event->detached (taggings removed), $event->subtree (tags deleted with it)
});
  • Tagged a Untagged sa spustia raz na zápis, so všetkými štítkami, ktoré pripojil či odpojil — nikdy pri volaní, ktoré nič nezmenilo.
  • Štítok zmazaný cez katalóg sa odpojí všade jedným príkazom a spustí jednu udalosť TagDeleted, nie Untagged pre každý model.
  • Tags::fake() udalosti nefakuje — každé volanie sa aj tak vykoná — takže vedľa neho funguje Event::fake().

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.