---
title: "Eventy a výnimky — Sluggable for Laravel | Roundly"
description: "Eventy SlugChanged, SlugCollisionRetried a SlugsRegenerated a typovaná hierarchia výnimiek za každou chybou."
url: https://roundly-consulting.com/sk/open-source/navody/sluggable-for-laravel/eventy-a-vynimky
language: sk
---

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

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

# Eventy a výnimky

Počúvajte SlugChanged a obnovte sitemapy, cache alebo vyhľadávacie indexy pri každej zmene slugu:

```php
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, ktorý zadáte (chybné kľúče v uložených mapách sa namiesto toho preskočia). |
| `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 či kolízny sufix, predpona a prípona bez miesta pre slug, nebezpečná ručná hodnota alebo ručná hodnota pri Strict dlhšia ako maxLength. |
| `SlugAlreadyTakenException` | Ručná hodnota pri politike Strict je už obsadená. |
| `SlugLockedException` | Ručná zmena zamknutého slugu; hláška pochádza z prekladu sluggable::validation.locked v aktuálnom jazyku. |
| `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 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/sluggable-for-laravel.md)
