satoved / laravel-livewire-steps
轻量级的Livewire组件,让您轻松构建向导或多步骤表单。
v1.1.0
2024-09-26 13:24 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- livewire/livewire: ^3.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
This package is auto-updated.
Last update: 2024-09-26 13:25:51 UTC
README
轻量级Livewire组件,让您轻松构建向导(多步骤表单)。
此包使用Livewire 3表单对象作为步骤,并需要仅一个Livewire组件作为向导。
以下是向导的示例。
在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)。请参阅许可文件以获取更多信息。