全部
常见问题
产品动态
精选推荐

标准版从创建数据表到实现最基础增删改查的实现过程

管理 管理 编辑 删除

很多使用了CRMEB单商户系统的童鞋在进行二开的时候都会遇到新建了数据表之后不知道对数据表怎么进行操作那么这篇文章将带你完整的实现一遍以后就不会怕啦

一、创建数据表

就以最简单的为例创建一个学生的信息表

编号姓名性别年龄班级成绩
idnamesexageclassscore

创建的表为下图所示其中id为数据表自增主键

92b16202303311843209179.png

二、创建数据表模型文件

程序中创建数据表对应的model文件目录在app/model下该目录下的文件夹是以功能模块进行分类的我们先创建一个test文件夹创建数据表模型Student.php文件

4acee202303311843413722.png

该模型类必须要继承BaseModel,但是可以不使用ModelTrait里面仅实现了三个方法如果不需要的话可以不用引用

然后设置数据表主键

protected $pk = 'id';  

设置数据表名称

protected $name = 'student';  

设置完成之后此Model会和数据表进行关联是程序对表进行操作的重要一个环节创建完成model类之后接下来我们开始完成Dao层数据操作的功能实现

三、创建dao层数据库操作文件

在app/dao文件下创建test文件夹并创建StudentDao.php的Dao层文件创建完成之后需要继承BaseDao并设置之前创建的Student模型

protected function setModel(): string
{
    return Student::class;
}

3f8f220230331184548690.png

在这里我们对数据表的增删改查分别写一个方法查询分为多条和单条一共五个方法

使用$this->getModel()方法可以获取在上方设置的模型实例化对象该文件下的所有方法都可以使用此方法进行模型的实例化

1、 新增数据时使用 $this->getModel()->save($data);即可实现数据的新增逻辑,$data为想要新增的数据数组类型

8fe7d202303311846073417.png

2、 对于数据的查询分为单条和多条查询我们在这里分为两个方法去实现同理使用

$this->getModel()->where($where)->find();可以实现单条查询的逻辑,$where是查询的条件例如:$where = [‘name’=>’张三’],这个条件就是查询name姓名为张三的数据对象如果使用主键进行单条查询可以直接使用$this->get($id)的方法获取

ee5e3202303311846173090.png

多条数据查询如果不分页的情况下写法和单条一样只是将find()改为select(),如果需要分页查询需要传入page和limit当前页数和每页条数然后进行分页查询

6e532202303311846317226.png

其中when判断了当page和limit传入的数据都大于0的时候才会进行分页查询如果传入0或者不传则默认查询全部的数据

3、 修改数据修改数据需要传入一个条件和一个需要修改的数组变量根据条件去修改对应的数据,$where负责查询对应的数据将对应的数据修改成$data里面携带的参数注意,$where$data里面的数组键必须是数据表里面存在的字段此方法可以修改单条或者多条取决于$where的查询是单条还是多条会返回被修改的数据条数

f49be202303311846464182.png

4、 删除数据如果数据表里面设置的删除的字段可以使用修改的方法将字段进行修改做到软删除如果需要直接删除数据则可是使用delete()方法

db020202303311846585819.png

三、创建services层数据处理文件

在app/services文件下创建test文件夹并创建StudentServices.php的services层文件创建完成之后需要继承BaseServices,并注入StudentDaocb49220230331184709845.png

本次我们不对数据做任何处理只是实现数据表的增删改查所以在services文件中可以直接写好对应的调用也可以不用写对应的方法系统会自动找到dao层的方法进行处理

d7eb3202303311847248.png

四、创建控制器以及路由文件

路由文件增加对应五个方法的路由添加查询单条查询多条修改删除

7461d20230331184736166.png

对应控制器中的五个方法控制器需要先注入StudentServices,才能使用services中的方法控制器中获取参数使用request中的getMore或者postMore来获取到此调用对应的接口就可以实现数据库简单的增删改查了

828cb202303311847481156.png

总结CRMEB系统中每个层级是非常清楚的,controller用来接受和发送数据,services用来组合数据逻辑处理dao层是用来对数据库的增删改查model是数据库的模型类弄懂了这些逻辑和文件层级以后在在开发中会更方便和快捷

请登录后查看

徐斗明 最后编辑于2023-09-11 16:17:13

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
打赏
已打赏¥{{reward_price}}
1175
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服