[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' => '初始值'
]
]);
~~~
## 表單數據自動提交