## 功能描述
后台的HTML的表单组件代码,会有许多不熟悉前端的小伙伴改动起来会比较费劲。其实在Yzncms中有一个的`FormBuilder`类库,能使用php一句话代码生成一些的文本框,下拉框,上传组件等等,
### 通用属性
| 属性名 | 描述 |
| --- | --- |--|
| `$name` | 通常为我们组件的名称,我们在后台接收时可以通过这个名称来获取到它所对应的值 |
|`$value`|通常为我们数据库中的值,在新增的时候通常为空,在修改的时候通常需要是数据库中对应字段的值 |
|`$options`|组件的扩展属性,通常为一一键值匹配并最终渲染在组件的属性中,通常我们使用的有`data-rule/disabled/readonly/multiple`等等,也常用于自定义组件属性。|
### 支持组件
```
//创建一个CSRF令牌生成隐藏字段
token($name = '__token__', $type = 'md5')
//创建一个表单标签元素
label($name, $value = null, $options = [], $escape_html = true)
//创建一个表单输入字段
input($type, $name, $value = null, $options = [])
//创建一个文本输入字段
text($name, $value = null, $options = [])
//创建一个密码输入字段
password(string $name, array $options = [])
//创建一个范围输入选择器
range($name, $value = null, $options = [])
//创建一个隐藏的输入字段
hidden($name, $value = null, $options = [])
//创建一个电子邮件输入字段
email($name, $value = null, $options = [])
//创建一个tel输入字段
tel($name, $value = null, $options = [])
//创建一个url输入字段
url($name, $value = null, $options = [])
//创建一个textarea输入字段
textarea($name, $value = null, $options = [])
//创建一个选择框字段
select($name,$list = [],$selected = null,array $selectAttributes = [],array $optionsAttributes = [],array $optgroupsAttributes = [])
//创建一个按钮字段
button($value = null, $options = [])
//创建单选按钮输入字段
radio($name, $value = null, $checked = null, $options = [])
//创建一组单选框字段
radios($name, $list, $checked = null, $title = [], $options = [])
//创建复选按钮字段
checkbox($name, $value = 1, $checked = null, $options = [])
//创建一组复选按钮框字段
checkboxs($name, $list, $checked, $title = [], $options = [])
//创建一个上传图片组件(单图)字段
image($name = null, $value = null, $inputAttr = [], $uploadAttr = [], $chooseAttr = [], $previewAttr = [])
//创建一个上传图片组件(多图)字段
images($name = null, $value = null, $inputAttr = [], $uploadAttr = [], $chooseAttr = [], $previewAttr = [])
//创建上传文件组件(单文件)字段
upload($name = null, $value = null, $inputAttr = [], $uploadAttr = [], $chooseAttr = [], $previewAttr = [])
//创建上传文件组件(多文件)字段
uploads($name = null, $value = null, $inputAttr = [], $uploadAttr = [], $chooseAttr = [], $previewAttr = [])
//创建颜色选择字段
color($name = null, $value = null, $options = [])
//创建日期时间选择器字段
datetime($name = null, $value = null, $options = [])
//创建百度富文本编辑器字段
ueditor($name, $value = null, $options = [])
//创建动态下拉列表字段
selectpage($name, $value, $url, $field = null, $primaryKey = null, $options = [])
//创建动态下拉列表(复选)字段
selectpages($name, $value, $url, $field = null, $primaryKey = null, $options = [])
```
### 组件示例
> 以下为FormBuilder所支持的所有组件调用示例,你可以复制你所需要的组件到你的表单中,然后按需要修改名称或值即可
> 部分组件如选择框,单选框复选框等需要在layui表单中放置,样式才会生效,在普通页面生成是最原始的风格
```
<form class="layui-form" method="post">
{:Form::token()}
<div class="layui-form-item">
<label class="layui-form-label">文本框</label>
<div class="layui-input-block">
{:Form::text('row[text]','',["lay-verify"=>"required"])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">TAG标签</label>
<div class="layui-input-block">
{:Form::text('row[tag]','',["class"=>"form-tags"])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码框</label>
<div class="layui-input-block">
{:Form::password('row[password]',["lay-verify"=>"required"])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">多文本</label>
<div class="layui-input-block">
{:Form::textarea('row[textarea]','',["lay-verify"=>"required"])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">单选框</label>
<div class="layui-input-block">
{:Form::radio('row[radio]','1',true,['title'=>"显示"])}
{:Form::radio('row[radio]','0',false,['title'=>"隐藏"])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">单选框组</label>
<div class="layui-input-block">
{:Form::radios('row[radios]',['aa'=>'AA', 'bb'=>'BB'], 'aa',['aa'=>'显示','bb'=>'隐藏'])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择框</label>
<div class="layui-input-block">
{:Form::select('row[radios]',['aa'=>'AA', 'bb'=>'BB'], 'aa')}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">复选框</label>
<div class="layui-input-block">
{:Form::checkbox('row[checkbox]','1',true,['title'=>"显示"])}
{:Form::checkbox('row[checkbox]','0',false,['title'=>"隐藏"])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">复选框组</label>
<div class="layui-input-block">
{:Form::checkboxs('row[checkboxs]',['aa'=>'AA', 'bb'=>'BB'], 'aa,bb',['aa'=>'显示','bb'=>'隐藏'])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">单图片</label>
<div class="layui-input-block">
{:Form::image("row[image]")}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">多图片</label>
<div class="layui-input-block">
{:Form::images("row[images]")}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">单文件</label>
<div class="layui-input-block">
{:Form::upload("row[upload]")}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">多文件</label>
<div class="layui-input-block">
{:Form::uploads("row[uploads]")}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">颜色框</label>
<div class="layui-input-block">
{:Form::color("row[color]",'#ddd',['class'=>'layui-input'])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">日期框</label>
<div class="layui-input-block">
{:Form::datetime("row[datetime]",'',['class'=>'layui-input','data-date-range'=>'-'])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">动态下拉</label>
<div class="layui-input-block">
{:Form::selectpage("row[selectpage]",'','category/selectpage','name','id',["lay-verify"=>"required"])}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">动态下拉(多选)</label>
<div class="layui-input-block">
{:Form::selectpages("row[selectpages]",'','category/selectpage','name','id',["lay-verify"=>"required"])}
</div>
</div>
</form>
```
- 序言
- 使用条款
- 安装
- 环境搭建
- 目录结构
- 钩子和行为
- 表单生成
- 数据限制
- 命令行
- 一键生成CRUD
- 一键生成菜单
- 一键安装
- 系统配置
- 常规字段
- 特殊字段1:下拉框(高级)字段
- 特殊字段2:自定义字段
- 特殊字段3:自定义多图片
- 系统函数/类
- 函数说明
- cache - 缓存管理
- thumb - 获取缩略图
- str_cut - 字符截取
- 邮箱/短信
- 插件使用说明
- cms内容管理【cms】
- 变量/常量
- 函数
- getCategory - 栏目获取
- catpos - 面包屑
- seo - 生成SEO
- buildCatUrl - 生成栏目URL
- buildContentUrl - 创建内容链接
- 标签
- 公共参数
- 栏目标签
- 列表标签
- 上一页标签
- 下一页标签
- Tags标签
- 万能标签
- 原生标签
- 搜索页
- 筛选页
- 内容详情页
- 模板
- 技巧/问题
- 将CMS路由设置更简洁
- 外链和单页如何增加列表类型的子栏目
- 如何合理设置SEO
- 实现电脑和手机模板分离
- 敏感词检测
- 栏目授权不全
- 内容页分页
- 分页伪静态
- tag标签不支持特殊字符
- 部分虚拟主机tags页面报错
- 循环表格
- 二级目录搭建知识点
- 阅读收费
- 会员插件【member】
- 介绍
- 自定义表单【formguide】
- 调用方式
- 模板
- 支付插件【pay】
- 支付宝
- 微信
- 常见问题
- 接口文档【apidoc】
- 简介
- 配置
- 使用
- 万能采集【collection】
- 采集列表规则
- 采集内容规则
- 关于图片
- 案例一:采集yzncms论坛
- cms小程序【wxcms】(重构已下架)
- 前端
- H5设计【diywap】
- 返回顶部【returntop】
- 通用数据导出【dataoutput】
- 多通道短信【easysms】
- 塞邮邮箱【saiyouems】
- 第三方登录【synclogin】
- 中文分词【getwords】
- QQ客服【kefu】
- 地图位置【address】
- 智能人机验证【vaptcha】
- 行为验证码【ajcaptcha】
- 数据转换【v9toyzn】
- 数据转换【dedetoyzn】
- 百度收录查询【baidurecord】
- 蜘蛛访问统计【spider】
- editormd编辑器【editormd】
- 敏感词检测【sensitive】
- 邮箱发送【phpmailer】
- 内容收藏【favorite】
- 队列插件【queue】
- 七牛云【qiniu】
- 阿里云oss【alioss】
- 腾讯云【cos】
- 迅搜全文检索【xunsearch】
- 评论插件【comments】
- 网页即时通讯【webim】(重构已下架)
- 生成js
- window使用
- linux使用(推荐)
- 常见问题
- 友情链接【links】
- 考试插件【kaoshi】(暂停)
- 会员邀请【invite】
- 快递查询插件【expressquery】
- 礼品卡提货系统【pickup】
- 地区插件【area】
- IP归属地查询【ipregion】
- 百度统计插件【baidutongji】
- 消息通知【notice】
- 微信管理【wechat】
- 在线投票系统【vote】
- 前端&组件
- 后台前端框架
- 文件上传
- table数据表格
- auth权限验证
- 动态显示(Favisible)
- 动态下拉(SelectPage)
- 键值组件(Fieldlist)
- uniapp教程
- 常见问题
- YznCMS开发遇到错误怎么办?(新手必看)
- 关闭调试模式
- 伪静态(URL重写)
- 虚拟主机不支持绑定public的方法
- 各类虚拟主机伪静态使用注意事项
- 百度编辑器多图片上传被压缩
- 部分虚拟主机隐藏index.php有问题
- 后台路径admin.php修改
- 后台密码忘记重置方法
- 宝塔面板一键部署
- 后台登录时验证码不显示
- 小程序图片不显示
- 如何自定义404页面显示模板
- 管理员登录时提示请于1天后再尝试登录
- composer
- composer简介
- 内置composer
- 各大厂商镜像地址
- 常用命令
- 拓展知识
- 助手类
- thinkphp维护
- 插件开发
- 目录结构
- 数据库
- 测试数据
- 插件信息
- 插件配置
- 核心文件
- 插件函数
- 🔥开发者入驻
- 申请入驻
- 建立私库
- 插件入驻流程
- 模板入驻流程
- 安全建议
- 更新日记和补丁包