---
title: "Príprava modelu — Onboarding for Laravel | Roundly"
description: "Pridajte GetsOnboarded na model — čítajte jeho tok, zvoľte predvolený kľúč a používajte jednoriadkové metódy bezpečné voči null."
url: https://roundly-consulting.com/sk/open-source/navody/onboarding-for-laravel/priprava-modelu
language: sk
---

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

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

# Príprava modelu

Trait GetsOnboarded pridajte každému Eloquent modelu, ktorý má sprístupniť svoj onboarding. Trait si od OnboardingManager vypýta kópiu toku modelu naviazanú na model, takže pravidlo každého kroku dostane práve tento model — a Onboarding::fake() vidí každé volanie traitu:

```php
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Onboarding\Traits\GetsOnboarded;

class User extends Model
{
    use GetsOnboarded;
}
```

## Čítanie toku modelu

```php
$user = User::first();

$flow = $user->onboarding();                      // the resolver's flow, else defaultOnboardingKey()'s, bound to $user
$flow = $user->onboarding('admin');               // a specific flow by key
$flow = $user->onboarding('missing', $fallback);  // a copy of $fallback bound to $user when the key is unknown
```

onboarding() vráti null, ak nie je zaregistrovaný zodpovedajúci tok a nezadáte náhradný — preto príklady v tejto dokumentácii používajú ?->. Náhradný tok sa pred naviazaním skopíruje, takže dva modely, ktoré ho zdieľajú, si nikdy neprepíšu subjekt.

## Voľba predvoleného kľúča

Model predvolene používa kľúč default. Iný zvolíte prepísaním defaultOnboardingKey() — napríklad podľa stĺpca modelu. Ak je zaregistrovaný resolver, má prednosť jeho voľba a defaultOnboardingKey() slúži ako náhrada, keď vráti null alebo neznámy kľúč:

```php
public function defaultOnboardingKey(): string
{
    return $this->onboarding_flow ?? 'default';
}
```

## Metódy bezpečné voči null

Trait pridáva jednoriadkové metódy, aby ste nemuseli sami reťaziť onboarding()?->…. Každá prijíma voliteľný kľúč toku; bez neho číta ten istý tok ako $user->onboarding() — podľa resolvera, inak podľa defaultOnboardingKey():

```php
$user->hasCompletedOnboarding();        // bool — false when no flow is registered
$user->isOnboarding();                  // bool — in progress
$user->onboardingProgress();            // float — 0.0 when no flow is registered
$user->nextOnboardingStep();            // ?Step
$user->dismissOnboardingStep('add-bio'); // dismiss an optional, dismissible step (needs a store)
$user->hasCompletedOnboarding('admin'); // target a specific flow key
```

| Metóda | Vracia | Účel |
| --- | --- | --- |
| `onboarding(?string $key = null, ?Flow $default = null)` | `?Flow` | Kópia toku pod kľúčom — bez neho podľa resolvera, inak pod defaultOnboardingKey() — naviazaná na model; inak naviazaná kópia $default. |
| `resolvedOnboarding()` | `?Flow` | Onboarding::for($model) — tok podľa resolvera, inak predvolený tok. |
| `defaultOnboardingKey()` | `string` | Náhradný kľúč toku modelu, keď resolver vráti null alebo neznámy kľúč — OnboardingManager::$default (default), kým ho neprepíšete. |
| `hasCompletedOnboarding(?string $key = null)` | `bool` | Tok je dokončený; false, ak nie je zaregistrovaný žiadny tok. |
| `isOnboarding(?string $key = null)` | `bool` | Tok prebieha; false, ak nie je zaregistrovaný žiadny tok. |
| `onboardingProgress(?string $key = null)` | `float` | percentageCompleted(); 0.0, ak nie je zaregistrovaný žiadny tok. |
| `nextOnboardingStep(?string $key = null)` | `?Step` | Aktuálny krok, na ktorom má používateľ pokračovať. |
| `dismissOnboardingStep(string $step, ?string $key = null)` | `void` | Skryje voliteľný skryteľný krok; bez store, pri neznámom, povinnom alebo neskryteľnom kroku nerobí nič. |

## V Blade šablóne

```blade
@if ($user->isOnboarding())
    <div class="onboarding-banner">
        <progress value="{{ $user->onboardingProgress() }}" max="100"></progress>
        <p>Next: {{ $user->nextOnboardingStep()?->resolvedTitle() }}</p>
    </div>
@endif
```

## 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/onboarding-for-laravel.md)
