Skip to content

概述

系统后台表单采用基于 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' => '请输入合法的邮箱格式']
]);

承信租多门店租赁商城系统官方文档