Appearance
概述
系统后台表单采用基于 PHP 的表单构建器(FormBuilder)快速生成交互界面。支持丰富的输入控件、级联选择器、文件/图片上传及表单验证规则。
快速上手
创建添加商品表单
php
use FormBuilder\Factory\Elm as Form;
use think\facade\Route as Url;
$field = [
Form::select('cate_id', '产品分类')->setOptions(function(){
$list = CategoryModel::getTierList();
$menus = [];
foreach ($list as $menu) {
$menus[] = [
'value' => $menu['id'],
'label' => $menu['html'] . $menu['cate_name'],
'disabled' => $menu['pid'] == 0
];
}
return $menus;
})->filterable(true)->multiple(true),
Form::input('store_name', '产品名称')->col(8),
Form::input('store_info', '产品简介')->type('textarea'),
Form::input('keyword', '产品关键字')->placeholder('多个用英文状态下的逗号隔开'),
Form::input('unit_name', '产品单位', '件'),
Form::frameImageOne('image', '产品主图片', '/adminapi/widget.images/index?fodder=image')->icon('image')->width('100%')->height('550px'),
Form::number('price', '产品售价')->min(0)->col(8),
Form::number('cost', '成本价')->min(0)->col(8),
Form::number('stock', '库存')->min(0)->precision(0)->col(8),
Form::radio('is_show', '产品状态', 0)->options([
['label' => '上架', 'value' => 1],
['label' => '下架', 'value' => 0]
])->col(8),
];
return $this->makePostForm('添加商品', $field, Url::buildUrl('save'), 'POST');常用表单组件
输入控件
- 单行文本:
Form::input('field_name', '字段标签', '默认值') - 多行文本:
Form::textarea('field_name', '字段标签')或Form::input(...)->type('textarea') - 数字输入:
Form::number('field_name', '数字标签')->min(0)->max(100)->precision(2) - 密码输入:
Form::password('field_name', '密码') - 隐藏域:
Form::hidden('field_name', '值')
选择控件
- 单选框:
Form::radio('field_name', '标签', $default)->options([['label'=>'A','value'=>1]]) - 复选框:
Form::checkbox('field_name', '标签', $default)->options([...]) - 下拉选择框:
Form::select('field_name', '标签')->options([...])->filterable(true) - 开关组件:
Form::switches('field_name', '状态')->trueValue(1)->falseValue(0)
日期与时间
- 日期选择:
Form::date('field_name', '选择日期') - 日期区间:
Form::dateRange('field_name', '起止日期') - 日期时间:
Form::dateTime('field_name', '选择时间') - 日期时间区间:
Form::dateTimeRange('field_name', '起止时间')
级联与多级联动
- 省市区三级联动:
Form::cityArea('address', '所在区域') - 省市二级联动:
Form::city('address', '所在城市') - 多级联动:
Form::cascader('category_ids', '分类选择')->data($treeData)
上传与图片选择
- 单图上传/弹窗选择:
Form::frameImageOne('image', '主图', $frameUrl) - 多图上传/弹窗选择:
Form::frameImages('slider_image', '轮播图', $frameUrl)->maxLength(5) - 文件上传:
Form::uploadFileOne('file', '附件上传', $uploadUrl)
栅格布局与验证
栅格布局 (Col)
通过 col($span) 可以配置占用格数(24格制):
php
Form::input('name', '名称')->col(12);
Form::number('sort', '排序')->col(12);校验规则 (Validate)
php
Form::input('email', '邮箱')->required('邮箱不能为空')->validate([
['type' => 'email', 'message' => '请输入合法的邮箱格式']
]);