Dopytovanie
Product::whereSlug('red-chair')->first(); // default column
Product::whereSlug('rc-01', column: 'handle')->first();
Topic::whereSlug('investovanie', locale: 'sk')->first(); // exact locale
Topic::whereSlug('investing')->first(); // chain: current → fallback → supported
Topic::whereSlugIn(['a', 'b'])->get();
Topic::whereSlugInAnyLocale('investing')->first(); // current, fallback, supported, listed
Topic::whereSlug('gift')->orderBySlugPreference('gift')->first();
Product::findBySlug('red-chair'); // ?Product (adds the preference order)
Product::findBySlugOrFail('red-chair'); // ModelNotFoundException → 404- whereSlug($slug, column:, locale:) — zadaný jazyk sa hľadá presne; null nasleduje reťazec definície: aktuálny, potom záložný a (pri Any) každý podporovaný jazyk aj jazyky uvedené v locales().
- whereSlugIn() prijíma zoznam, whereSlugInAnyLocale() reťazec ignoruje a prehľadá každý vyhľadateľný jazyk (aktuálny, záložný, podporované, uvedené), orderBySlugPreference() radí na prvé miesto aktuálny jazyk, potom záložný.
- findBySlug() vráti model alebo null a pridá preferenčné poradie; findBySlugOrFail() vyhodí ModelNotFoundException — v controlleri 404.
- Zadanie jazyka pri reťazcovom stĺpci vyhodí InvalidSlugDefinitionException (localeOptionOnStringColumn).
Scopes pridávajú len podmienky — nikdy ORDER BY — takže ->count(), ->paginate() aj poddopyty whereHas() fungujú na každej databáze; preferenčné poradie jazykov pridávajú len vyhľadávacie metódy a route binding. Čítanie uplatňuje bežné globálne scopes modelu.
Balíky s vymeniteľným modelom by mali volať scopes cez svoj prístupový bod (PostModel::query()->whereSlug(…)), nie Post::findBySlug(…) — neskoré statické viazanie výmenu modelu ignoruje.
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.