abdallahmohammed/laravel-multistep-forms
Composer 安装命令:
composer require abdallahmohammed/laravel-multistep-forms
包简介
Laravel Multistep Forms Builder
README 文档
README
Installation
composer require abdallahmohammed/laravel-multistep-forms
Example Usage
use AbdallaMohammed\Form\Form; use Illuminate\Support\Facades\Route; Route::get('form', function () { return app(Form::class)->make(function (Form $form) { // Create a step instance and define rules, messages and attributes $form->step()->rules([ 'name' => ['required', 'string'], ])->messages([ 'required' => ':attribute Required', ])->attributes([ 'name' => 'Name', ]); // Add another step with dynamic rules $form->step()->dynamicRules(); }); })->name('form');
Steps Usage
Before Step
Define a callback to fired before a step has been validated.
Return a response from this hook to return early before validation occurs.
before($step, Closure $closure)
$step could be Step instance, or the number of the step.
After Step
Define a callback to fired after a step has been validated. Step Number or * for all.
Return a response from this hook to return early before the form step is incremented.
after($step, Closure $closure)
$step could be Step instance, or the number of the step.
Dynamic Step
You can set a step as dynamic, so the step will take it's rules, messages and attributes from the request.
For example
use AbdallaMohammed\Form\Form; use Illuminate\Support\Facades\Route; Route::get('form', function () { return app(Form::class)->make(function (Form $form) { ... $form->step()->dynamicRules()->messages([ 'foo' => 'bar', ]); ... }); })->name('form');
From the example we have defined the attributes without the rules, so we must send the rules with the request. Here it is the example of the request body.
{
"step": 1,
"1.rules": {
"name": ["required", "string"]
}
}
1.rules is a reference to first step rules.
You can change 1 to the number of the dynamic step.
As the previous example you can send 1.messages and 1.attributes in the request body.
Helper Methods
stepConfig(?int $step = null)
Get the current step config, or a specific step config.
getValue(string $key, $fallback = null)
Get a field value from the form state (session / old input) or fallback to a default.
setValue(string $key, $value)
Set a field value from the session form state.
currentStep()
Get the current saved step number.
requestedStep()
Get the requested step number.
isStep(int $step = 1)
Get the current step number.
isLastStep()
Determine if the current step the last step.
isPast(int $step, $truthy = true, $falsy = false)
Determine if the specified step is in the past.
isActive(int $step, $truthy = true, $falsy = false)
Determine if the specified step is active.
isNext(int $step, $truthy = true, $falsy = false)
Determine if the specified step is in the next.
toCollection
Get the array representation of the form state as a collection.
toArray
Get the array representation of the form state.
abdallahmohammed/laravel-multistep-forms 适用场景与选型建议
abdallahmohammed/laravel-multistep-forms 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 39 次下载、GitHub Stars 达 12, 最近一次更新时间为 2021 年 01 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 abdallahmohammed/laravel-multistep-forms 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 abdallahmohammed/laravel-multistep-forms 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 39
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 12
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-01-04