FormBuilder 是一个开源的PHP表单生成器,能够快速生成现代化的form表单。还能够配合开源项目 xaboy/form-create 生成任何 Vue 组件php
- PHP >= 5.4
使用 composer:github
$ composer require xaboy/form-builder:~2.0
复制代码
文档bash
- IView
- ElementUI
- 内置17种经常使用的表单组件
- 支持表单验证
- 支持生成任何 Vue 组件
- 支持栅格布局
- 能够配合 form-create 生成更复杂的表单
以 ElementUI 为例,用法以下:markdown
use FormBuilder\Factory\Elm; $action = '/save.php'; $method = 'POST'; $input = Elm::input('goods_name', '商品名称')->required(); $textarea = Elm::textarea('goods_info', '商品简介'); $switch = Elm::switches('is_open', '是否开启')->activeText('开启')->inactiveText('关闭'); //建立表单 $form = Elm::form($action)->setMethod($method); //添加组件 $form->setRule([$input, $textarea]); $form->append($switch); //生成表单页面 echo $formHtml = $form->view(); 复制代码
全部内置组件都支持 required 验证app
$input = Elm::input('goods_name','商品名称'); //必填 $input->required(); 复制代码
建立一个必填的验证规则composer
//input 组件值得类型为 string $validate = Elm::validateStr(); $validate->required()->message('请填写商品名称'); $input->appendValidate($validate); //$input->appendValidates([$validate]); //$input->validate([$validate]) //这个会覆盖刚刚添加的必填规则 复制代码
全部内置组件都支持经过 createValidate 方法获取组件的验证规则,注意:一个组件的验证规则可能有多个类型,要把组件全部的规则配置完后再获取oop
$start = date('Y-m-d', strtotime('- 10day')); $end = date('Y-m-d', time()); $dateRange = Elm::dateRange('start_time','时间区间', $start, $end); $validate = $dateRange->createValidate(); 复制代码
$validate->range(1,10); 复制代码
$validate->min(1); 复制代码
$validate->max(10); 复制代码
$validate->length(10); 复制代码
$list = [1,2,3,4]; $validate->enum($list); 复制代码
$validate->pattern('^[A-Z]+$'); 复制代码
$validate->message('输入有误'); 复制代码
string
类型$validate = Elm::validateStr(); //email $validate = Elm::validateEmail(); //url $validate = Elm::validateUrl(); 复制代码
array
类型$validate = Elm::validateArr();
复制代码
int
类型$validate = Elm::validateInt();
复制代码
float
类型$validate = Elm::validateFloat();
复制代码
float|int
类型$validate = Elm::validateNum();
复制代码
Date
类型例如DatePicker
,TimePicker
布局
$validate = Elm::validateDate();
复制代码
object
类型$validate = Elm::validateObject();
复制代码
$validate = Elm::validateEnum()->enum(['1','2','3']); 复制代码
$validate = Elm::validateHex();
复制代码
值发生变化时触发验证,默认ui
组件失去焦点时触发
表单提交时触发