Všetky balíky
Sluggable for Laravel
Eventy a výnimky
Počúvajte SlugChanged a obnovte sitemapy, cache alebo vyhľadávacie indexy pri každej zmene slugu:
use RoundlyConsulting\Sluggable\Events\SlugChanged;
Event::listen(SlugChanged::class, function (SlugChanged $event): void {
// $event->model, ->column, ->locale, ->previous, ->current, ->reason (ChangeReason)
Cache::forget('sitemap');
});| Event | Údaje | Kedy |
|---|---|---|
SlugChanged (after commit) | model, column, locale, previous, current, reason (ChangeReason) | Raz pre každú uloženú zmenu. |
SlugCollisionRetried | modelClass, column, attempt | Pri každom opakovaní po súbehu. |
SlugsRegenerated | modelClass, report | Na konci regenerácie / spracovaného chunku z fronty. |
- SlugChanged implementuje ShouldDispatchAfterCommit — pri vrátenej transakcii sa nikdy neodošle. Spustí sa raz pre každú uloženú zmenu vrátane ručných a pri jazykových mapách raz pre každý zmenený jazyk.
- Neodošle sa vnútri withoutGeneration() ani pri sluggable:regenerate --without-events.
- ChangeReason je jedna z hodnôt Generated, Regenerated, Manual, CollisionRetry alebo Restored.
Výnimky
Každá výnimka rozširuje abstraktnú SluggableException (RuntimeException). Hlášky uvádzajú triedu modelu, stĺpec a jazyk — nikdy nie hodnotu iného riadku.
| Výnimka | Kedy sa vyhodí |
|---|---|
InvalidSlugDefinitionException | Neplatná definícia alebo konfiguračná hodnota — duplicitné stĺpce, viac route kľúčov, chybný oddeľovač, maxLength mimo rozsahu, chýbajúci kontrakt, chýbajúca hodnota rozsahu a podobne. |
InvalidLocaleException | Chybne zapísaný kód jazyka. |
SlugGenerationException | Vyčerpané kandidáty, prázdny zdroj pri Fail, vyčerpané opakovania, nesúlad indexu s definíciou, neplatný výstup vlastného sluggera alebo nebezpečná ručná hodnota. |
SlugAlreadyTakenException | Ručná hodnota pri politike Strict je už obsadená. |
SlugLockedException | Ručná zmena zamknutého slugu. |
SlugMovedException | Požiadavka na vyradený slug — vykreslí presmerovanie z histórie; implementuje ShouldntReport. |
UnsupportedDriverException | DDL indexov na nepodporovanom driveri (napr. SQL Server). |
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.