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

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=missingPredvolené. Doplní prázdne slugy a chýbajúce jazyky.
--mode=stalePrepočí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=allPrepočíta všetko; bez --force si vyžiada potvrdenie.
--column, --localeObmedzia beh; --locale=de doplní nový jazyk.
--chunkRiadky na chunk (1–10000, predvolene 500).
--dry-runVypíše až 20 zmien (kľúč, stĺpec, jazyk, staré → nové); nič nezapíše.
--historyZaznamená vyradené hodnoty aj pre definície bez keepHistory().
--without-eventsNeodošle SlugChanged.
--forceObíde zámky (lockWhen / locked) aj potvrdenie.
--queueOdoš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 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.