tp数组转为json_实战中vue如何向后端数据库存取json数组型数据

本文介绍了一款PEIS体检系统的费用管理模块设计过程,采用JSON格式存储费用信息,并利用ThinkPHP6后端框架与Element-Vue前端框架实现数据序列化及反序列化操作,简化数据库管理和前端展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在为医院做一套简单的PEIS体检系统,在录入费用的时候,一条费用一条数据总感觉很麻烦,数据多了直接看数据库也比较混乱,我经常直接看数据库,于是改成json的格式来存储费用相关的数据,[{"id":1},{"id":2}]大致这种格式,先说说项目的基本情况。

服务器采用的是lnmp,后端框架使用ThinkPHP6,前端使用Element-vue来处理,都知道对于php来说将数组存储到数据库,只需要序列化一下就可以了,serialize()官方有现成的语法,反序列化只需要使用unserialize(),当然也可以保存成json格式的,使用json_encode,反序列化json_decode就可以了。

今天我们讲前后端分离的情况下,如何做数据的转换,这里我直接用框架中的语法了,tp6中集成的相关的东西,如果使用原生的也不是很麻烦。

57052bdff2a4b1b9a7647e24aef44e69.png

tp6可以通过在模型中直接定义JSON字段的方式来自动序列化,这里我要序列化的字段是detail,这样我们在控制器中就可以直接使用了,当存detail会自动序列化,同样取的时候也会自动帮你反序列化数据。

e065949aed5c85e3ad1f89175be062bf.png

我们后端接口形成的数据是这样的

ba27225996e66556c99d08465f30ca44.png

下边我们就需要把api接口获取到的数据显示出来,table中直接:data数据就行了,这里我采用dialog弹窗的方式显示缴费详细数据,涉及到父组件传子组件的问题,这里我只贴出来重要的代码部分,下边是点击函数。

4f91cc536981256e06402764510ac3ed.png

dialog需要设置传输的数据,:detail=detail,在子组件就可以获取数据了,这里数据量不是特别大,我是一次性获取所有的详细数据了,也可以采用ID请求的方式,需要的时候在从后台取数据。

下边我贴出来子组件的具体写法,仅供参考。

f3cbd9f21e8a3cfe030a2eeeb8e44872.png

这里是直接$attrs中获取到父组件中的detail的数据,然后table展示相关数据,下边是最终效果图

17681bc550832b04324ce2b32e73d191.png

总结:大致思路,这里没有展示如何存数据,道理是一样的,前端直接传输数组到tp后端,后端模型json序列化存储到数据库中,读取的时候,获取相应字段的数据,前端使用JSON.parse将字符串数据转换成对象,在循环输出相关内容就可以了,在程序设计中,数据库直接存储数组还是比较方便的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值