[TOC]
## 准备构建器对象
~~~
$form = new \app\common\builder\Form();
// $form = new \app\common\builder\Form([表单初始值]);
// $form = new \app\common\builder\Form([表单初始值], 模型名);
/**
* Form constructor.
* @param array $data 表单的初始值默认值
* @param null $model 当前表单对应的模型
*/
public function __construct($data = [], $model = null)
~~~
下文的`$form`都是指`\app\common\builder\Form`类的实例对象。
## 添加表单项
方式一:通过`addFormItem`方法添加表单项:
~~~
/**
* 添加表单字段
* @param string $field 字段名
* @param string $elem 表单类型
* @param array $options 更多选项属性
* @return $this
* @throws \Exception
*/
public function addFormItem(string $field, string $elem = 'text', array $options = [])
~~~
~~~
$form->addFormItem('字段名', 'text', [
'label' => '标题',
// 更多选项属性 ...
]);
~~~
方式二:通过数组的语法添加表单项:
~~~
$form['字段名'] = [
'elem' => 'text', // 指定表单类型 必须
'label' => '标题',
// 更多选项属性 ...
];
~~~
## 修改表单项
方式一:通过`updateFormItem`方法添加表单项:
~~~
/**
* 修改表单字段
* @param string $field 字段
* @param $attr 如果是字符串就标识修改具体属性名 如果是数组就是批量修改
* @param null $value 修改的值
* @return $this
* @throws \Exception
*/
public function updateFormItem(string $field, $attr, $value = null)
~~~
~~~
// 修改单个属性
$form->updateFormItem('字段名', 'label', '标题2');
// 批量修改多个属性
$form->updateFormItem('字段名', [
'label' => '标题3',
'attrs' => [
'placeholder' => '请输入'
],
// 更多属性 ...
]);
~~~
方式二:通过数组的语法修改表单项:
~~~
$form['字段名'] = [
'elem' => 'textarea', // 修改类型
'label' => '标题2',
// 更多属性 ...
];
~~~
## 删除表单项
方式一:通过`deleteFormItem`方法删除表单项:
~~~
/**
* 删除表单字段
* @param string $field 需要删除的字段名
* @return $this
*/
public function deleteFormItem(string $field)
~~~
~~~
$form->deleteFormItem('字段名');
~~~
方式二:通过unset数组键的语法修改表单项:
~~~
unset($form['字段名']);
~~~
## 获取表单项
~~~
/**
* 获取表单字段
* $field 不填 获取所有字段信息;
* $field 有 $attr 不填 获取指定字段所有信息
* $field 有 $attr 有 获取指定字段的指定信息
* @return array|mixed|string
*/
public function getFormItem(string $field = null, string $attr = null)
~~~
方式一:通过`getFormItem`方法获取表单项:
~~~
$form->getFormItem();// 获取所有字段的所有选项
$form->getFormItem('字段名');// 获取指定字段的所有选项
$form->getFormItem('字段名', 'label'); // 获取指定字段的指定选项值
~~~
方式二:通过数组的语法获取表单项:
~~~
$form['字段名']; // 获取指定字段的所有选项
$form['字段名']['label']; // 获取指定字段的指定选项值
~~~
## 表单初始值赋值
方式一:new Form的时候的第一个参数直接进行初始值批量赋值:
~~~
$form = new \app\common\builder\Form([
'字段名1' => '初始值',
'字段名2' => '初始值',
]);
~~~
方式二:通过`setItemValue`方法以数组的形式进行初始值批量赋值:
~~~
$form->setItemValue([
'字段名1' => '初始值',
'字段名2' => '初始值',
]);
~~~
方式三:通过`setItemValue`方法对指定字段进行单个字段初始值赋值:
~~~
$form->setItemValue('字段名', '初始值');
~~~
方式四:直接给字段的`attrs`选项属性设置`value`标签属性:
~~~
$form->addFormItem('字段名', 'text', [
'label' => '标题',
'attrs' => [
'value' => '初始值'
]
]);
~~~
## 表单数据自动提交