CRMEB單商戶系統二開小妙招——從創建數據表到實現最基礎增刪改查的實現過程

很多使用了CRMEB單商戶系統的童鞋在進行二開的時候,都會遇到新建了數據表之后不知道對數據表怎么進行操作。那么,這篇文章將帶你完整的實現一遍,以后就不會怕啦。
一、創建數據表
就以最簡單的為例,創建一個學生的信息表
二、創建數據表模型文件
程序中創建數據表對應的model文件,目錄在app/model下,該目錄下的文件夾是以功能模塊進行分類的,我們先創建一個test文件夾。創建數據表模型Student.php文件。
該模型類必須要繼承BaseModel,但是可以不使用ModelTrait,里面僅實現了三個方法如果不需要的話可以不用引用。
然后設置數據表主鍵
1. protected $pk = 'id';
設置數據表名稱
1. protected $name = 'student';
設置完成之后,此Model會和數據表進行關聯,是程序對表進行操作的重要一個環節創建完成model類之后,接下來我們開始完成Dao層數據操作的功能實現。
三、創建dao層數據庫操作文件
在app/dao文件下創建test文件夾,并創建StudentDao.php的Dao層文件。
創建完成之后,需要繼承BaseDao,并設置之前創建的Student模型
1. protected function setModel(): string
2. {
3. return Student::class;
4. }
在這里,我們對數據表的增刪改查分別寫一個方法,查詢分為多條和單條,一共五個方法。
使用$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是數據庫的模型類,弄懂了這些邏輯和文件層級,以后在在開發中會更方便和快捷。
您如果還想了解更多標準版的功能技術規則等問題,可以關注CRMEB官網-行業新聞。有更多實用的技術知識為您分享!
