Form
{warning} Form类用于创建一个新的表单。命名空间:
- ElementUI 工厂类
FormBuilder\Factory\Elm
- Iview 工厂类
FormBuilder\Factory\Iview
- Form 基础表单类
FormBuilder\Form
注意: 组件需要使用对应版本的组件,例如 ElementUI版的表单需要使用通过Elm
工厂类创建的组件,Iview版的表单需要使用通过Iview
工厂类创建的组件
创建 ElementUI 版的表单
参数:
string
$action 表单提交地址array
$rules 生成的组件array|FormBuilder\Contract\ConfigInterface
$config 表单全局配置
$action = 'save.php';
$form = Form::elm($action);
//$form = Elm::createForm($action); //效果相同
创建 Iview 版的表单
参数:
string
$action 表单提交地址array
$rules 生成的组件array|FormBuilder\Contract\ConfigInterface
$config 表单全局配置
$action = 'save.php';
$form = Form::iview($action);
//$form = Iview::createForm($action); //效果相同
//iview 4.x 版本
$form = Form::iview4($action);
//$form = Iview::createFormV4($action); //效果相同
设置提交方法
$form->setMethod('POST');
设置表单提交内容编码
$form->setContentType('application/x-www-form-urlencoded');
设置表单提交额外消息头
$form->setHeader('Authorization', 'Bearer eyJ0eXA....');
//批量设置
$form->headers(['Authorization' => 'Bearer eyJ0eXA....']);
设置依赖的js静态资源地址
$form->setDependScript(['jquery', 'vue', 'ui', 'form-create']);
设置生成页面的 title
$form->setTitle('商品编辑');
设置表单默认值
$form->setValue($field,$value);
//批量设置
$form->formData([$field1=>$value1,$field2=>$value2]);
添加表单组件
$input = Elm::input('goods_name', '商品名称');
$switch = Elm::switches('is_show', '是否显示');
//支持直接写 form-create 规则
$color = ['type'=>'colorPicker', 'field'=>'color', 'title'=>'标题颜色', 'value'=>'#FF7271'];
$form->setRule([$input, $switch, $color])
//尾部追加
$form->append($color);
//头部添加
$form->prepend($switch);
设置表单配置
$config = Elm::config();
$config->resetBtn(true);
//或者
//$config = ['resetBtn'=>true];
$form->setConfig($config);
设置表单提交地址
$form->setAction('/save.php');
表单提交按钮显示状态
$form->showSubmitBtn(false);
表单重置按钮显示状态
$form->showResetBtn(true);
获取依赖的js静态资源
$dependScript = $form->getDependScript();
获取解析后的表单生成规则
$rule = $form->formRule();
//json 格式
$jsonRule = $form->parseFormRule();
获取解析后的表单配置
$config = $form->formConfig();
//json 格式
$jsonConfig = $form->parseFormConfig();
获取生成表单的 js 代码
$script = $form->formScript();
使用方法
<script>
var create = <?= $script ?>;
var $f = create(/** 参数: [[el 表单插入的 dom], callback 表单提交回调] **/);
</script>
获取生成表单的页面
$html = $form->formScript();
echo $html;
渲染自定义表单页面
$html = $form->template('./form.php');
//或者
$html = $form->setTemplate('./form.php')->view();
echo $html;