目录
▸
入门
简介
安装
1.x升级指南
版本升级
快速开始
开发前必读
主题与颜色
静态资源
视图与自定义页面
多应用(多后台)
JS组件
常见问题
Laravel Octane
▸
数据表格
基本使用
列的使用和扩展
列的显示和扩展
行的使用和扩展
工具栏
树状表格
组合表头
数据来源以及查询条件
关联关系
查询过滤
列过滤器
快捷搜索
规格筛选器
数据导出
快捷创建
行内编辑
事件
字段翻译
数据软删除
头部和脚部
表格异步渲染
▸
数据表单
基本使用
图片/文件上传
字段的使用
字段扩展
数据源
表单弹窗
关联关系
JSON表单
分步表单
表单验证
工具表单
事件以及表单响应
初始化
表单布局
字段翻译
字段动态显示
▸
数据详情
基本使用
字段显示
关联关系
字段显示扩展
初始化
字段翻译
▸
模型树
基本使用
▸
数据仓库
基本使用
▸
动作
基本使用
数据表格
数据表单
数据详情
模型树
▸
多语言
基本使用
▸
开发扩展
扩展基本使用
开发扩展
▸
页面组件
异步加载
图表
数据统计卡片
模态窗(Modal)
工具表单
下拉菜单
单/复选框
选项卡
警告框
提示窗
Markdown
卡片
▸
区块
区块基本使用
▸
动作以及表单响应
动作以及表单响应
▸
权限控制
权限控制
▸
菜单
菜单基本使用
▸
帮助函数
帮助函数
▸
开发工具
基本使用
▸
自定义登陆认证
自定义登录
▸
自定义头部导航
自定义头部导航条
▸
更新日志
BETA版本更新日志
更新日志
内容导航
1.x
2.x
JSON表单
创建时间:2024-06-26 14:02:01 / 更新时间:2024-06-26 14:02:01
# JSON格式字段处理 `dcat-admin`的表单提供了下面几个组件来处理`JSON`格式的字段,方便用来处理`JSON`格式的对象、一维数组、二维数组等对象。 ## 键值对象 (keyValue) ![](http://docs.oneself.icu:10010/storage/markdown/images/b2acc65fcca3700fd6db418c2e11edf2667bae9660114.png) 如果你的字段存储的是不固定`键`的`{"field":"value"}`格式,可以用`keyValue`组件: ```php $form->keyValue('column_name'); // 设置校验规则 $form->keyValue('column_name')->rules('required|min:5'); ``` 自定义键名以及键值标题翻译 ```php $form->keyValue(...)->setKeyLabel('键名')->setValueLabel('键值'); ``` 也可以自定义默认结构,以便于新建数据时候自动带入 keyValue 数据的模板 ```php $form->keyValue('price')->default(['cny' => '', 'usd' => ''])->setKeyLabel('币种')->setValueLabel('价格'); ``` ![](http://docs.oneself.icu:10010/storage/markdown/images/f015f31ffd66be957a3ad969f4cee826667baea5a593c.png) ## 固定键值对象 (embeds) ![](http://docs.oneself.icu:10010/storage/markdown/images/acfa8e74bccbf62248409ed19b2c0949667baeb05b895.png) 用于处理`mysql`的`JSON`类型字段数据或者`mongodb`的`object`类型数据,也可以将多个`field`的数据值以`JSON`字符串的形式存储在`mysql`的字符串类型字段中 适用于有固定键值的`JSON`类型字段 ```php $form->embeds('column_name', function ($form) { $form->text('key1')->required(); $form->email('key2')->required(); $form->datetime('key3'); $form->dateRange('key4', 'key5', '范围')->rules('required'); })->saving(function ($v) { // 转化为json格式存储 return json_encode($v); }); // 自定义标题 $form->embeds('column_name', '字段标题', function ($form) { ... }); ``` 回调函数里面构建表单元素的方法调用和外面是一样的。 ## 一维数组 (list) ![](http://docs.oneself.icu:10010/storage/markdown/images/0e28fb87dc638bb67e6e8db696eccd7f667baec074d2d.png) 如果你的字段是用来存储`["foo", "Bar"]`格式的一维数组, 可以使用`list`组件: ```php $form->list('column_name'); // 设置校验规则 $form->list('column_name')->rules('required|min:5'); // 设置最大和最小元素个数 $form->list('column_name')->max(10)->min(5); ``` ## 二维数组 (table) ![](http://docs.oneself.icu:10010/storage/markdown/images/f52cdedffdd6044c8491d89c87551a77667baecc64f6d.png) 如果某一个字段存储的是`json`格式的二维数组,可以使用`table`表单组件来实现快速的编辑: ```php $form->table('column_name', function ($table) { $table->text('key'); $table->text('value'); $table->text('desc'); })->saving(function ($v) { return json_encode($v); }); ``` 这个组件类似于`hasMany`组件,不过是用来处理单个字段的情况,适用于简单的二维数据。 ## 二维数组 (array) ![](http://docs.oneself.icu:10010/storage/markdown/images/d649255149f414a4acdfd48d8ceb55f9667baed60d29c.png) 如果某一个字段存储的是`json`格式的二维数组,并且字段比较多,可以使用`array`表单组件来实现快速的编辑: ```php $form->array('column_name', function ($table) { $table->text('key'); $table->text('value'); $table->textarea('desc'); })->saveAsJson(); ```
上一文章
下一文章
返回顶部
返回主页
返回文档展示页