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:
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Onboarding\Traits\GetsOnboarded;
class User extends Model
{
use GetsOnboarded;
}Čítanie toku modelu
$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', new Flow()); // fallback when the key is unknownonboarding() vráti null, ak nie je zaregistrovaný zodpovedajúci tok a nezadáte náhradný — preto príklady v tejto dokumentácii používajú ?->.
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ľúč:
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():
$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. |
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 alebo neskryteľnom kroku nerobí nič. |
V Blade šablóne
@if ($user->isOnboarding())
<div class="onboarding-banner">
<progress value="{{ $user->onboardingProgress() }}" max="100"></progress>
<p>Next: {{ $user->nextOnboardingStep()?->resolvedTitle() }}</p>
</div>
@endifPrejavte 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.