Artisan príkazy
php artisan sluggable:regenerate "App\Models\Product" # backfill empty slugs
php artisan sluggable:regenerate "App\Models\Topic" --locale=de # backfill a new locale
php artisan sluggable:regenerate "App\Models\Product" --mode=stale --history --dry-run
php artisan sluggable:regenerate "App\Models\Product" --mode=all --force --chunk=1000 --queue
php artisan sluggable:indexes "App\Models\Topic" --column=slug --dry-run
php artisan sluggable:duplicates "App\Models\Product" --column=slug --locale=sk{model} prijíma názov triedy alebo morph alias; musí ísť o Eloquent model, ktorý implementuje Sluggable. Každý príkaz je dostupný aj cez fasádu — pre plánované úlohy, deploy skripty aj vlastné príkazy:
use RoundlyConsulting\Sluggable\Enums\RegenerationMode;
use RoundlyConsulting\Sluggable\Facades\Slugs;
Slugs::model(Product::class)->regenerate(mode: RegenerationMode::Stale, withHistory: true, dryRun: true);
Slugs::model(Product::class)->queueRegeneration(mode: RegenerationMode::All, chunk: 1000, force: true);
Slugs::model(Topic::class)->indexes(dryRun: true);
Slugs::model(Product::class)->duplicates(column: 'slug', locale: 'sk');sluggable:regenerate
| Voľba | Účinok |
|---|---|
--mode=missing | Predvolené. Doplní prázdne slugy a chýbajúce jazyky. |
--mode=stale | Prepočíta; nahradí len hodnoty, ktorých základ sa zmenil (bez zbytočných zmien), a odstráni sufix, ak je holý základ opäť voľný. |
--mode=all | Prepočíta všetko; bez --force si vyžiada potvrdenie. |
--column, --locale | Obmedzia beh; --locale=de doplní nový jazyk. |
--chunk | Riadky na chunk (1–10000, predvolene 500). |
--dry-run | Vypíše až 20 zmien (kľúč, stĺpec, jazyk, staré → nové); nič nezapíše. |
--history | Zaznamená vyradené hodnoty aj pre definície bez keepHistory(). |
--without-events | Neodošle SlugChanged. |
--force | Obíde zámky (lockWhen / locked) aj potvrdenie. |
--queue | Odošle jeden RegenerateSlugsJob na každý chunk kľúčov. |
Riadky sa prechádzajú bez globálnych scopes (vrátane zmazaných a odfiltrovaných), po chunkoch podľa kľúča, a každý zmenený riadok sa uloží bežným spôsobom — s históriou aj eventmi. Zámky sa rešpektujú, pokiaľ nepoužijete --force. Job vo fronte serializuje len identifikátory a voľby, nikdy modely. SlugsRegenerated sa spustí na konci každého behu alebo chunku z fronty, nie však pri dry run.
sluggable:indexes
Spustí SlugIndexes::forModel() pre model a vypíše DDL, už existujúce indexy a súhrn. Použite ho po pridaní jazyka na vytvorenie jeho indexov a s --dry-run na náhľad. Chyby definície, napríklad kolidujúce jazyky, príkaz ukončia chybou.
sluggable:duplicates
Vypíše hodnoty, ktoré by unikátny index odmietol — zoskupené podľa hodnôt rozsahu, jazyka a slugu, bez globálnych scopes — a tiež hodnoty dlhšie ako maxLength; stĺpec s notUnique() index nedostane, preto sa pri ňom vypíšu len príliš dlhé hodnoty. Spustite ho pred pridaním indexu k existujúcim údajom. Len reportuje: údaje nikdy nemení a v každom prípade skončí kódom 0.
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.