satoved/laravel-livewire-steps

轻量级的Livewire组件,让您轻松构建向导或多步骤表单。

v1.1.0 2024-09-26 13:24 UTC

This package is auto-updated.

Last update: 2024-09-26 13:25:51 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

轻量级Livewire组件,让您轻松构建向导(多步骤表单)。

此包使用Livewire 3表单对象作为步骤,并需要仅一个Livewire组件作为向导。

screenshot

以下是向导的示例。

GitHub上的此存储库中,您将找到一个演示Laravel应用程序,它使用laravel-livewire-steps包创建一个简单的电子邮件订阅流程。

安装

您可以通过composer安装此包

composer require satoved/laravel-livewire-steps

用法

创建一个扩展WizardComponent的Livewire组件。将所有步骤按正确顺序列表为公共属性。

use Satoved\LivewireSteps\Livewire\WizardComponent;

class EmailSubscriptionWizard extends WizardComponent
{
    public NameStep $nameStep;
    public EmailStep $emailStep;

    public function render()
    {
        return <<<'BLADE'
            <form wire:submit="nextStep">
                {{ $this->renderStep() }}
                <button>Next</button>
            </form>
BLADE;
    }
}

每个步骤都是一个Livewire 表单对象,必须扩展StepForm。

use Satoved\LivewireSteps\Livewire\Forms\StepForm;

class EmailStep extends StepForm
{
    #[Validate(['required', 'email'])]
    public $email;

    public function render()
    {
        return '<input type="email" wire:model="emailStep.email">';
    }
}

测试

composer test

替代方案

此包深受spatie/laravel-livewire-wizard的启发。这是一个很棒的包,但每个步骤都必须是一个Livewire组件,并且每次都会对父组件和步骤组件进行两次请求。这对于我的用例来说是多余的。

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全漏洞

请查看我们的安全策略,了解如何报告安全漏洞。

鸣谢

许可协议

MIT许可(MIT)。请参阅许可文件以获取更多信息。