## 方法原型:
```
addTopButton($type = '', $title = '', $url = '', $linkType = 'link', $attr = [])
```
## 参数说明:
```
* @param string $type 按钮类型:add/enable/disable/delete/custom
* @param string $title 按钮标题
* @param string $url 按钮操作链接
* @param string $linkType 链接类型 link-普通跳转 ajax-ajax请求 pop-打开弹窗 null-无操作
* @param array $attr {
* type:default|primary|success|info|warning|danger|text, // 按钮类型,默认 primary
* round:true|false, // 按钮是否圆角,默认 false
* plain:true|false, // 是否朴素按钮,默认 false
* circle:true|false, // 是否圆形按钮,默认 false
* icon, // 按钮图标,可选择的图标见icon表单项
* flag: 按钮标记,用于对按钮进一步操作,默认按钮的flag为对应的类型名称
* disabled, // 是否禁用,默认 false
* target: 按钮链接跳转类型(linkType为link时有效, _blank表示新页面打开链接),
* confirm: false|true|{title, tips, type:warning}, 按钮点击时是否需要确认框,
* extra_data: 附加数据, 表单提交时会把附加数据提交,
* batch: 是否批量操作(批量操作时会附带当前列表中选中的数据ID)
* }
```
> 按钮类型,默认支持add/enable/disable/delete类型,除了add按钮之外其他都是批量操作按钮。如果需要自定义功能,可使用custom类型,并自定义对应的操作。
> 更具体的说明参考[按钮操作](按钮操作.md)
## 调用方式
- 添加按钮
```
return SBuilder::make('table')
->addTopButton('add')
->fetch();
```
> 添加按钮默认操作为页面跳转,如果想要以弹框方式打开添加页面,可以将linkType设置为 pop:
> `addTopButton('add', '', '', 'pop')`
> 添加操作默认跳转地址为当前控制器下的add方法,如果需要跳转到别的位置,请在参数中传递对应的地址。
- 批量启用/批量禁用
```
return SBuilder::make('table')
->addTopButton('enable') // 批量启用
->addTopButton('disable') // 批量禁用
->fetch();
```
> 批量启用与批量禁用对应的操作地址分别为当前控制器的`enable`与`disable`方法。
- 批量删除按钮
```
return SBuilder::make('table')
->addTopButton('delete')
->fetch();
```
> 批量删除对应的操作地址为当前控制器的`delete`方法。
- 页面示例:
![](https://box.kancloud.cn/fc4ccfa76d590fa929d4108b91f2ee19_568x80.png)
- 添加自定义按钮
```
return SBuilder::make('table')
->addTopButton('custom', '新窗口打开百度', 'https://baidu.com', 'link', ['target' => '_blank'])
->fetch();
```
- 示例:
![](https://box.kancloud.cn/f91258eb0f5c69e8f5d1c66bd2615aa7_239x74.png)