1. Go to this page and download the library: Download wfeller/laravel-onboard library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
wfeller / laravel-onboard example snippets
class User extends Model
{
use \WF\Onboard\GetsOnboarded;
// ...
}
public function boot()
{
// This step will only apply to User::class:
OnboardFacade::addStep('Create your first post', User::class)
->link('/post/create')
->cta('Create Post')
// ->cacheResults() // You can cache the results to avoid duplicating queries
->completeIf(function (User $user) {
// This will make 1 DB query each time to retrieve the count
// The result will be cached if using cacheResults()
return $user->posts()->count() > 0;
})
// You may add a scope to only fetch users having completed this step
// This scope will be used when querying User::onboarded()->get()
->completeScope(function (Builder $builder) {
$builder->whereHas('posts');
})
// All steps are
// Defining the attributes
// Closures will be resolved using the given onboarding user as their only argument
OnboardFacade::addStep('Step w/ custom attributes', User::class)
->setAttributes([
'name' => 'Waldo',
'shirt_color' => 'Red & White',
'shirt_price' => function (User $user) {
return $user->age * 4; // yes, that example sucks :)
},
]);
// Accessing them
$step->name;
$step->shirt_color;
$step->shirt_price;
namespace App\Http\Middleware;
use Illuminate\Support\Facades\Auth;
use Closure;
class RedirectToUnfinishedOnboardingStep
{
public function handle($request, Closure $next)
{
if (Auth::user()->onboarding()->inProgress()) {
return redirect()->to(
Auth::user()->onboarding()->nextUnfinishedStep()->link
);
}
return $next($request);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.