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;

示例: Template/form.php

Powered by