[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' => '初始值' ] ]); ~~~ ## 表单数据自动提交