PHPackages                             dcat-x/form-step - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. dcat-x/form-step

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

dcat-x/form-step
================

Dcat Admin multi-step form extension

v1.0.0(5mo ago)01MITPHPPHP ^8.2CI passing

Since Jan 16Pushed 5mo agoCompare

[ Source](https://github.com/dcat-x/form-step)[ Packagist](https://packagist.org/packages/dcat-x/form-step)[ Docs](https://github.com/dcat-x/form-step)[ RSS](/packages/dcat-x-form-step/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (5)Versions (2)Used By (0)

Form Step
=========

[](#form-step)

 [![Tests](https://github.com/dcat-x/form-step/actions/workflows/tests.yml/badge.svg)](https://github.com/dcat-x/form-step/actions) [![Latest Stable Version](https://camo.githubusercontent.com/81a809b34b6526aa4d13b93f6f20a52ec92e40f6c34bd6609c2fb557998591c0/68747470733a2f2f706f7365722e707567782e6f72672f646361742d782f666f726d2d737465702f762f737461626c65)](https://packagist.org/packages/dcat-x/form-step) [![Total Downloads](https://camo.githubusercontent.com/755cfbb52fba27566e2eff289147b176505116a7ce5cdee8832392076bddb3f8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f646361742d782f666f726d2d737465702e737667)](https://packagist.org/packages/dcat-x/form-step) [![PHP Version](https://camo.githubusercontent.com/a6cbb407d7c9516800449295b3078b103b2e1c766bafda03f7ceba178aee51b9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d382e322b2d3539613966382e737667)](https://www.php.net/) [![Laravel Version](https://camo.githubusercontent.com/9429da85454daee5672bc536c99fa284dd523403bab5556f5710ff8281468f54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d31322b2d3539613966382e737667)](https://laravel.com/) [![Dcat Admin Version](https://camo.githubusercontent.com/9e29e5f17da06aaadd5a2d6578952e8d3ad4817fb71ba2b05ce40aa874ce3562/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646361742d2d61646d696e2d312e302b2d3539613966382e737667)](https://github.com/dcat-x/dcat-admin) [![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)

**Dcat Admin 分步表单扩展，支持将复杂表单拆分为多个步骤，提升用户填写体验**

功能特性
----

[](#功能特性)

- 多步骤表单管理，支持任意数量步骤
- 单步验证，减少服务器请求
- 数据持久化，刷新页面不丢失数据
- 自定义完成页面
- 支持文件上传
- 响应式 UI 设计

安装
--

[](#安装)

通过 Composer 安装：

```
composer require dcat-x/form-step
```

然后在 Dcat Admin 后台启用扩展，或发布资源文件：

```
php artisan vendor:publish --provider="Dcat\Admin\FormStep\FormStepServiceProvider"
```

使用方法
----

[](#使用方法)

### 基本用法

[](#基本用法)

```
use Dcat\Admin\Form;

$form = new Form(new User());

$form->multipleSteps(function ($step) {
    // 第一步：基本信息
    $step->add('基本信息', function ($form) {
        $form->text('name', '姓名')->required();
        $form->email('email', '邮箱')->required();
        $form->password('password', '密码')->required();
    });

    // 第二步：详细信息
    $step->add('详细信息', function ($form) {
        $form->text('phone', '电话');
        $form->textarea('address', '地址');
    });

    // 第三步：确认信息
    $step->add('确认', function ($form) {
        $form->textarea('remarks', '备注');
    });
});

return $form;
```

### 配置选项

[](#配置选项)

```
$form->multipleSteps(function ($step) {
    // 添加步骤...

    // 设置容器宽度
    $step->width('1200px');

    // 设置内边距
    $step->padding('30px 20px');

    // 启用数据记忆（刷新页面不丢失）
    $step->remember(true);

    // 选择初始步骤
    $step->select(0);
});
```

### 自定义完成页面

[](#自定义完成页面)

```
$form->multipleSteps(function ($step) {
    // 添加步骤...

    // 自定义完成页面
    $step->done('完成', function ($page) {
        $data = $page->input(); // 获取所有输入数据
        $id = $page->getNewId(); // 获取新创建的记录 ID

        return view('my-completion-page', compact('data', 'id'));
    });
});
```

### 步骤事件

[](#步骤事件)

```
$form->multipleSteps(function ($step) {
    $step->add('步骤一', function ($form) {
        $form->text('name');

        // 离开当前步骤时执行
        $form->leaving('console.log("离开步骤一")');

        // 显示当前步骤时执行
        $form->shown('console.log("显示步骤一")');
    });
});

// 全局事件
$step->leaving('console.log("离开步骤", args.index)');
$step->shown('console.log("显示步骤", args.index)');
```

### 步骤描述

[](#步骤描述)

```
$step->add('基本信息', function ($form) {
    $form->setDescription('请填写您的基本信息');

    $form->text('name');
    $form->email('email');
});
```

API 参考
------

[](#api-参考)

### Builder 类

[](#builder-类)

方法说明`add($title, $callback)`添加步骤`done($title, $callback)`配置完成页面`width($width)`设置容器宽度`padding($padding)`设置内边距`remember($bool)`启用/禁用数据记忆`select($index)`选择初始步骤`shown($script)`注册步骤显示事件`leaving($script)`注册步骤离开事件`count()`获取步骤数量`all()`获取所有步骤### Form 类

[](#form-类)

方法说明`setTitle($title)`设置步骤标题`setDescription($desc)`设置步骤描述`setIndex($index)`设置步骤索引`shown($script)`注册当前步骤显示事件`leaving($script)`注册当前步骤离开事件### CompletionPage 类

[](#completionpage-类)

方法说明`title($title)`获取/设置标题`contents($content)`设置页面内容`input($key, $default)`获取表单输入数据`getNewId()`获取新创建的记录 ID`form()`获取表单实例测试
--

[](#测试)

```
composer test
```

代码风格
----

[](#代码风格)

```
composer lint
```

更新日志
----

[](#更新日志)

请查看 [CHANGELOG](CHANGELOG.md) 了解版本更新信息。

贡献指南
----

[](#贡献指南)

请查看 [CONTRIBUTING](CONTRIBUTING.md) 了解如何参与贡献。

安全漏洞
----

[](#安全漏洞)

如果发现安全漏洞，请查看 [SECURITY](SECURITY.md) 了解报告方式。

致谢
--

[](#致谢)

- [Dcat Admin](https://github.com/jqhph/dcat-admin)
- [jQuery SmartWizard](https://github.com/techlab/jquery-smartwizard)

许可证
---

[](#许可证)

MIT License. 请查看 [LICENSE](LICENSE) 了解更多信息。

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance70

Regular maintenance activity

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

168d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f1a5cf1d598b649d03d3514155a1da4ff4c105c3173945e80298a07ccc077c5c?d=identicon)[huanghua581](/maintainers/huanghua581)

---

Top Contributors

[![myxiaoao](https://avatars.githubusercontent.com/u/1223134?v=4)](https://github.com/myxiaoao "myxiaoao (2 commits)")

---

Tags

laravelextensionformwizardmulti stepdcat admin

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/dcat-x-form-step/health.svg)

```
[![Health](https://phpackages.com/badges/dcat-x-form-step/health.svg)](https://phpackages.com/packages/dcat-x-form-step)
```

###  Alternatives

[kartik-v/yii2-widget-colorinput

An enhanced Yii 2 widget encapsulating the HTML 5 color input (sub repo split from yii2-widgets)

345.1M12](/packages/kartik-v-yii2-widget-colorinput)[thiagotalma/yii2-jstree

Widget for Yii Framework 2.0 to use JsTree

3263.8k2](/packages/thiagotalma-yii2-jstree)[wapplersystems/form_extended

Multi upload field, sender addresses in site config, new field types and other

1322.4k6](/packages/wapplersystems-form-extended)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
