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
英文地址,請注明出處:http://en.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;難以滿足…