# 初始化
~~~
return ZBuilder::make('form')
->setPageTitle('新增商品')
->addFormItems($fields)
// ->layout([)
->setFormData([
'product_id'=>$p_id,
])
->fetch();
}
~~~
## 设置页面标题
setPageTitle(‘页面标题’)
和表单构建器的用法一样,一般情况下,无需调用这个方法,系统会自动获取当前操作的名称,前提是该操作已经添加到菜单节点。
也可以重新设置页面标题
~~~
// 使用ZBuilder构建数据表格,并将页面标题设置为“列表”
return ZBuilder::make('table')->setPageTitle('列表')->fetch();
~~~
## 设置页面提示信息
`setPageTips(‘提示信息’ [,‘提示类型’])`
中括号的里的参数为可选参数,后面的其他方法也是如此
提示信息
~~~
// 使用ZBuilder构建数据表格
return ZBuilder::make('table')->setPageTips('这是页面提示信息')->fetch();
~~~
提示类型
默认提示类型是info,除此之外还有success、danger、warning
~~~
// 使用ZBuilder构建数据表格
return ZBuilder::make('table')
->setPageTips('这是页面提示信息', 'danger')
->fetch();
~~~
> 提示信息里里还可以加链接 是支持html代码的 包裹在p里
# 添加单个项目
添加表单项功能是表单构建器的重中之重,系统内置了多达30几种不同的表单类型,可以随心所欲的构建表单页面
`addCheckbox(‘name值’, ‘标题’, ‘提示’, ‘数据项’ [, ‘默认值’, ’ 属性’, ‘额外属性’, ‘额外css类’])`
## 复选
## addCheckbox(‘name值’, ‘标题’, ‘提示’, ‘数据项’ [, ‘默认值’, ’ 属性’, ‘额外属性’, ‘额外css类’])
标识符:`checkbox`
| 参数 | 含义 | 类型 |
| --- | --- | --- |
| name | name值 | string |
| title | 标题 | string |
| tips | 提示 | string |
| options | 数据项 | array |
| default | 默认值 | string |
| attr | 属性 | array |
| extra_attr | 额外属性 | string |
| extra_class | 额外css类 | string |
### 一个简单的复选框
~~~
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '', ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'])
->fetch();
~~~
![](https://box.kancloud.cn/03c4c36bbff86ec399cd1b9db8af6f4c_254x145.png)
### 带默认值的复选框
~~~
$list_city = ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'];
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '请选择城市', $list_city, 'gz')
->fetch();
~~~
也可以同时选中多个
~~~
$list_city = ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'];
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '请选择城市', $list_city, 'gz,sh')
->fetch();
~~~
![](https://box.kancloud.cn/de93fbf585601f29f3e600a3672f6ea2_274x164.png)
或者使用数组的方式,都是一样的
~~~
$list_city = ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'];
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '请选择城市', $list_city, ['gz', 'sh'])
->fetch();
~~~
### 定义复选框的属性
可以设置复选框的颜色、尺寸、形状
#### 颜色(color)
* `primary` (默认)
* `default`
* `info`
* `success`
* `warning`
* `danger`
~~~
$list_city = ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'];
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '请选择城市', $list_city, ['gz', 'sh'], ['color' => 'danger'])
->fetch();
~~~
![](https://box.kancloud.cn/7524047f374333b7efae85d0c3dc65bf_239x102.png)
#### 尺寸(size)
* `sm` (默认)
* `nm`
* `lg`
~~~
$list_city = ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'];
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '', $list_city, '', ['size' => 'lg'])
->fetch();
~~~
![](https://box.kancloud.cn/ddfa373fcac78db6cdd5327a5148578d_252x94.png)
#### 形状(shape)
* `rounded` (默认)
* `square`
~~~
$list_city = ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'];
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '', $list_city, '', ['shape' => 'square'])
->fetch();
~~~
三种属性可以一起使用
~~~
$list_city = ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'];
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '', $list_city, '', ['color' => 'danger', 'size' => 'lg', 'shape' => 'square'])
->fetch();
~~~
### 添加额外属性
比如默认为禁用状态
~~~
$list_city = ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'];
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '', $list_city, '', '', 'disabled')
->fetch();
~~~
### 添加额外css类
~~~
$list_city = ['gz' => '广州', 'sz' => '深圳', 'sh' => '上海'];
return ZBuilder::make('form')
->setPageTitle('添加')
->addCheckbox('city', '选择城市', '', $list_city, '', '', '', 'active')
->fetch();
~~~
> 这里添加的css类是自定义的,有特殊要求时才需要,请根据实际开发来决定
## 添加表单项通用方法
除了可以用不同的方法来添加表单项外,DolphinPHP还为大家提供两个通用方法。
## 添加单个表单项
#### addFormItem()
比如创建一个表单,一般情况下可能这么写
~~~
return ZBuilder::make('form')
->addText('title', '标题')
->addTextarea('summary', '摘要')
->addUeditor('content', '内容')
->addImage('pic', '封面')
->addTags('tags', '标签')
->addFile('files', '附件')
->fetch();
~~~
也可以用`addFormItem()`方法代替,第一个参数是表单项的标识符,其他参数与其对应的类型参数一致。
~~~
return ZBuilder::make('form')
->addFormItem('text', 'title', '标题')
->addFormItem('textarea', 'summary', '摘要')
->addFormItem('ueditor', 'content', '内容')
->addFormItem('image', 'pic', '封面')
->addFormItem('tags', 'tags', '标签')
->addFormItem('file', 'files', '附件')
->fetch();
~~~
## 添加多个表单项
#### addFormItems()
还是感觉上面的写法比较啰嗦吗?没关系,我们还有`addFormItems()`方法。比如上面的例子,可以写成
~~~
return ZBuilder::make('form')
->addFormItems([
['text', 'title', '标题'],
['textarea', 'summary', '摘要'],
['ueditor', 'content', '内容'],
['image', 'pic', '封面'],
['tags', 'tags', '标签'],
['file', 'files', '附件']
])
->fetch();
~~~
是不是看起来简洁很多?
> 注意:addFormItems的参数是一个数组,每个元素是一个表单项数组。
daterange的 layout设置 是`name[]` 比方说你的daterange 的name 是create_time 那么就是`create_time[]`