---
title: "Rýchly štart — Sluggable for Laravel | Roundly"
description: "Pridajte trait HasSlug a kontrakt Sluggable — bez konfigurácie sa pri vytvorení vygeneruje jedinečný slug z atribútu name."
url: https://roundly-consulting.com/sk/open-source/navody/sluggable-for-laravel/rychly-start
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)

# Rýchly štart

Pridajte modelu kontrakt Sluggable a trait HasSlug. Bez ďalšej konfigurácie sa pri vytvorení vygeneruje stĺpec slug z atribútu name a pri kolízii dostane sekvenčný sufix:

```php
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Sluggable\Concerns\HasSlug;
use RoundlyConsulting\Sluggable\Contracts\Sluggable;

final class Clinic extends Model implements Sluggable
{
    use HasSlug;   // zero config: `slug` generated from `name`

    protected $fillable = ['name', 'slug'];
}

Clinic::create(['name' => 'Happy Paws'])->slug;   // "happy-paws"
Clinic::create(['name' => 'Happy Paws'])->slug;   // "happy-paws-2"
```

Potrebné sú obe časti: trait bez implements Sluggable vyhodí InvalidSlugDefinitionException (missingContract). Stĺpec a zdroj pre režim bez konfigurácie pochádzajú z sluggable.defaults.column a sluggable.defaults.source.

## Migrácia

Dve Blueprint makrá pridajú stĺpec a unikátny index zodpovedajúci predvolenej definícii (globálna jedinečnosť, soft-deleted riadky sa počítajú ako obsadené):

```php
Schema::create('clinics', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->slug();          // string('slug', 255)
    $table->uniqueSlug();    // unique index clinics_slug_slug_unique
    $table->timestamps();
});
```

## Čítanie slugu

Okrem samotného atribútu dáva kontrakt každému modelu metódy na čítanie, ktoré sú dôležité najmä pri jazykových mapách, no fungujú aj pri reťazcových stĺpcoch:

```php
$clinic->slug;            // "happy-paws"
$clinic->currentSlug();   // "happy-paws"
$clinic->slugMap();       // ['*' => 'happy-paws']  (Sluggable::SINGLE_KEY)
```

slugFor($locale) číta presne jeden jazyk a je určená len pre stĺpce s jazykovou mapou — pri reťazcovom stĺpci vyhodí výnimku. Každá z týchto metód prijíma voliteľný názov stĺpca; null znamená stĺpec routeKey(), inak prvú definíciu.

S predvolenými nastaveniami sa vygenerovaná hodnota pri bežnom vstupe do 255 znakov zhoduje so Str::slug(), takže po pridaní traitu k existujúcemu modelu zostanú vaše slugy zachované. Rozdiely popisuje časť Formátovanie a sufixy.

## 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)
