Создает многошаговые контроллеры с сохранением результатов между шагами.
composer require buglerv/laravel-stepper
php artisan vendor:publish --provider=Buglerv\Stepper\StepperServiceProvider
В случае использования хранилища базы данных:
php artisan migrate
Для работы необходимо создать несколько контроллеров с одинаковыми именами и суффиксом _step{шаг}
. К примеру PersonController_step1
и PersonController_step2
.
use Facades\Buglerv\Stepper\Stepper;
$name = 'name'; // Любое уникальное имя по которому степпер будет идентифицироваться.
Stepper::init($name, 'PersonController'); // Степпер сам проверит какие классы существуют.
Stepper::get($name); // Класс PersonController_step1
Stepper::get($name)->doSomething(); // Вызов метода doSomething у контроллера PersonController_step1
Stepper::forward($name);
Stepper::get($name); // Класс PersonController_step2
Stepper::get($name)->doSomething(); // Вызов метода doSomething у контроллера PersonController_step2
Stepper::current($name); // 2
Stepper::back($name);
Stepper::get($name); // Класс PersonController_step1
Stepper::has($name); // true
Stepper::remove($name); // Удален.
Из отображения можно вывести полоску прогресса:
<x-stepper-info :name="$name"/>
Это выведет стандартное отображение. Но можно задать свое:
Stepper:setView('путь/до/отображения');
Возможны 4 варианта хранилища:
- database - База данных.
- file - Файлы.
- session - Сессия.
- array - По сути не сохраняет состояние между обновлениями страницы.
php artisan stepper:create --steps=2 PersonController
Создаст два контроллера PersonController_step1
и PersonController_step2
.