Všetky balíky
Tags for Laravel
Udalosti
Každá udalosť je final readonly trieda v RoundlyConsulting\Tags\Events, ktorá implementuje ShouldDispatchAfterCommit — spustí sa až po potvrdení zmeny, nikdy pri odvolaní:
| Udalosť | Payload | Spustí sa, keď |
|---|---|---|
Tagged | taggable, tags | K modelu boli pripojené štítky (attach alebo sync) — len ak sa niečo zmenilo. |
Untagged | taggable, tags | Štítky boli odpojené (detach, sync, clear, natrvalo zmazaný model) — len ak sa niečo zmenilo. |
TagCreated | tag | Vznikol štítok — cez katalóg alebo pre nový voľný názov pri označovaní. |
TagUpdated | tag, changed | Zmenil sa názov, popis, slug, farba alebo ikona; changed uvádza ktoré. |
TagMoved | tag, from, to | Nový rodič alebo nová pozícia; from / to sú starý a nový rodič (null: koreň). |
TagsReordered | type, parent, tags | Súrodenci pod rodičom (pri null korene) boli preusporiadaní; tags v novom poradí. |
TagDeleted | tag, 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í. |
TagRestored | tag | Zmazaný š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 kryptomienOdoslaní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.