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

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

一、创建数据表

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

编号

姓名

性别

年龄

班级

成绩

id

name

sex

age

class

score

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

创建数据表模型文件

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

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

然后设置数据表主键

protected $pk = 'id';

设置数据表名称

protected $name = 'student';

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

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

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

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

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

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

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

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

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

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

创建services层数据处理文件

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92920.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

J2EE模式---数据访问对象模式

数据访问对象模式基础概念数据访问对象模式(Data Access Object Pattern,简称 DAO 模式)是一种结构型设计模式,其核心思想是将数据访问逻辑与业务逻辑分离,通过一个抽象层(DAO)来处理数据的持久…

【OpenCV篇】OpenCV——02day.图像预处理(1)

目录 前言 一、图像色彩空间转换 1 RGB颜色空间 2 颜色加法 3 颜色加权加法 4 HSV颜色空间 5 RGB转Gray(灰度) 二、灰度实验 1 灰度图 2 最大值法 3 平均值法 4 加权均值法 5 两个极端的灰度值 三、图像二值化处理 二值图像 1 阈值法(THRESH_BINARY) 2 反阈值…

经典IDE之Turbo C

写的程序不多,换过的 IDE 不少,本文将列举曾经用过的不同 C 语言相关的 IDE 环境,既是纪念,也是回忆。值得注意的是 IDE 的出现是为了提高开发效率,有一个相对成熟的编译环境和程序。从编程的角度来看,过分…

Go 多模块仓库标签管理教程

为了方便自己开发,自己写了个小工具:DzhGO 代码生成工具 功能特点标题 初始化项目基础结构生成插件模块代码生成模型和实体代码生成服务接口和实现代码支持 admin 和 app 两种模块类型生成项目基础目录 具体介绍看仓库: https://github.co…

IDEA 类上方注释 签名

File -->settings–>Editor–>File and Code Templates–>class新建 Class 类上方添加内容:/*** author Jagger* since ${DATE} ${TIME}*/

卫星通信终端天线对星之:参考星对星

我们在前面的文章中介绍了3种卫星通信终端的对星模式,分别是: 卫星通信终端天线的5种对星模式之一:信标跟踪 卫星通信终端天线的5种对星模式之二:功率检测型载波跟踪 卫星通信终端天线的5种对星模式之二:DVB跟踪 今…

来自麻省理工和AI制药公司 Recursion 的结构与结合亲和力预测模型Boltz-2,解决小分子药物发现的关键问题

1. Boltz-2介绍 文章来源:http://jeremywohlwend.com/assets/boltz2.pdf 开源代码来源:https://github.com/jwohlwend/boltz 该AI模型由麻省理工学院计算机科学与人工智能实验室与上市AI制药公司Recursion一起开发,双方在Boltz-1的基础之上…

从零用java实现 小红书 springboot vue uniapp(14) 集成阿里云短信验证码

从零用java实现 小红书 springboot vue uniapp(14) 集成阿里云短信验证码 移动端演示 http://8.146.211.120:8081/#/ 管理端演示 http://8.146.211.120:8088/#/ 项目整体介绍及演示 前言 在现代应用中,手机号不仅是用户的唯一标识&#xff0…

`<< EOF` 与 `<< ‘EOF‘` 与 `<< “EOF“`有无引号的区别多回答笔记250722

<< EOF 与 << EOF 与 << "EOF"有无引号的区别多回答笔记250722 实测 自测代码: # 定义变量 hello"ni hao"# 无引号 tee << EOF # 无引号 ${hello} world \n $(date) # 无引号 EOF# 单引号 tee << EOF # 单…

点击按钮滚动到底功能vue的v-on:scroll运用

使用vue自带的监听滚动功能v-on:scroll&#xff0c;滚动条变化时&#xff0c;会调用方法 checkScrollStatus&#xff0c;如果滚动条在容器底部时&#xff0c;则隐藏按钮&#xff0c;否则显示按钮&#xff0c;点击按钮能一键滚动到底部。<div class"chat-area" ref…

Linux下编译SLEPc

本文记录在Linux下编译安装SLEPc的流程。 一、下载代码 git clone https://github.com/slepc/slepc.git cd ./slepc二、安装依赖 2.1 安装PETSc 参见: <Linux下编译安装PETSc> 2.2 安装intel oneAPI sudo apt install intel-oneapi-base-toolkit sudo apt install i…

【无标题】qwen3-8b 强化学习训练后的模型,可以接着 进行其他grpo 强化学习训练 吗

ser_count’, 0),)} {((‘valid_user_count’, 1),)} 44 0.0 88 [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.0, 0.6, 0.0, 0.6, 0.0, 0.6] 55 100%|???{‘loss’: 0.0132, ‘grad_norm’: 0.07552657276391983, ‘learning_rate’: 2e-06, ‘num_tokens’: 2098…

IDC权威认可:瑞数信息双项入选《中国大模型安全保护市场概览》

近日&#xff0c;国际数据公司IDC正式发布了《中国大模型安全保护市场概览&#xff0c;2025&#xff1a;全方位安全检测与防护构建可信AI》报告。本次报告中IDC结合全球统一定义以及中国市场特色&#xff0c;将中国大模型安全保护市场划分为7个细分领域&#xff0c;并通过对中国…

多智能体(Multi-agent)策略模式:思维链CoT和ReAct

参考&#xff1a;https://zhuanlan.zhihu.com/p/704523060 &#x1f3af; 一句话记住 CoT&#xff1a;像“考试时在草稿纸上写完所有步骤&#xff0c;再抄答案”。ReAct&#xff1a;像“玩密室逃脱&#xff0c;每开一个箱子就去找下一个线索”。 用小学生能听懂的话 两个小故事…

ChatGPT指令大全:输入需求=输出完整方案

ChatGPT指令大全提供数百个精炼过的指令语句 (提示词)&#xff0c;让你充分发挥 ChatGPT 的强大功能 一、核心功能模块分类 1. 求职与面试 简历优化 专业反馈&#xff1a;按面试官视角分析简历并提出改进建议量化数据&#xff1a;为经历添加具体数字&#xff08;如提升效率30…

Java零基础入门学习知识点2-JDK安装配置+Maven

文章目录版本提示参考视频Maven环境准备一、安装Java开发工具包&#xff08;JDK&#xff09;二、JDK环境配置三、下载Maven安装包*四、Maven环境配置&#xff08;可省略&#xff09;*五、验证安装&#xff08;上一步没做&#xff0c;这步无法验证&#xff0c;可省&#xff09;六…

基于单片机智能衣柜/智能衣橱设计

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 本设计实现了一种基于单片机的多功能智能衣柜&#xff0c;融合环境检测、安全防护与用户交互功能…

自动语音识别(ASR)技术详解

语音识别&#xff08;Automatic Speech Recognition, ASR&#xff09;是人工智能和自然语言处理领域的重要技术&#xff0c;旨在将人类的语音信号转换为对应的文本。近年来&#xff0c;深度学习的突破推动语音识别系统从实验室走入日常生活&#xff0c;为智能助手、实时翻译、医…

【MySQL】MySQL 事务和锁详解

一、MySQL 事务 1.1 事务介绍 在 MySQL 中&#xff0c;事务&#xff08;Transaction&#xff09; 是一组不可分割的 SQL 操作序列&#xff0c;这些操作要么全部成功执行&#xff0c;要么全部失败回滚&#xff0c;以此保证数据库操作的完整性和一致性。 事务将数据库从一种一致…

虚拟直线阈值告警人员计数算法暑期应用

智慧人员计数助力暑期&#xff1a;技术赋能安全管理的创新实践一、背景&#xff1a;暑期人流激增下的安全管理挑战暑期是旅游、商业、交通等场景的客流高峰期&#xff0c;人员密集区域易引发踩踏事故、管理混乱等安全隐患。传统人工计数方式效率低、误差大&#xff0c;难以满足…