CRMEB單商戶系統(tǒng)二開小妙招——從創(chuàng)建數(shù)據(jù)表到實現(xiàn)最基礎(chǔ)增刪改查的實現(xiàn)過程

很多使用了CRMEB單商戶系統(tǒng)的童鞋在進行二開的時候,都會遇到新建了數(shù)據(jù)表之后不知道對數(shù)據(jù)表怎么進行操作。那么,這篇文章將帶你完整的實現(xiàn)一遍,以后就不會怕啦。
一、創(chuàng)建數(shù)據(jù)表
就以最簡單的為例,創(chuàng)建一個學(xué)生的信息表
二、創(chuàng)建數(shù)據(jù)表模型文件
程序中創(chuàng)建數(shù)據(jù)表對應(yīng)的model文件,目錄在app/model下,該目錄下的文件夾是以功能模塊進行分類的,我們先創(chuàng)建一個test文件夾。創(chuàng)建數(shù)據(jù)表模型Student.php文件。
該模型類必須要繼承BaseModel,但是可以不使用ModelTrait,里面僅實現(xiàn)了三個方法如果不需要的話可以不用引用。
然后設(shè)置數(shù)據(jù)表主鍵
1. protected $pk = 'id';
設(shè)置數(shù)據(jù)表名稱
1. protected $name = 'student';
設(shè)置完成之后,此Model會和數(shù)據(jù)表進行關(guān)聯(lián),是程序?qū)Ρ磉M行操作的重要一個環(huán)節(jié)創(chuàng)建完成model類之后,接下來我們開始完成Dao層數(shù)據(jù)操作的功能實現(xiàn)。
三、創(chuàng)建dao層數(shù)據(jù)庫操作文件
在app/dao文件下創(chuàng)建test文件夾,并創(chuàng)建StudentDao.php的Dao層文件。
創(chuàng)建完成之后,需要繼承BaseDao,并設(shè)置之前創(chuàng)建的Student模型
1. protected function setModel(): string
2. {
3. return Student::class;
4. }
在這里,我們對數(shù)據(jù)表的增刪改查分別寫一個方法,查詢分為多條和單條,一共五個方法。
使用$this->getModel()方法可以獲取在上方設(shè)置的模型實例化對象,該文件下的所有方法都可以使用此方法進行模型的實例化,
1、 新增數(shù)據(jù)時,使用 $this->getModel()->save($data);即可實現(xiàn)數(shù)據(jù)的新增邏輯,$data為想要新增的數(shù)據(jù),數(shù)組類型。
2、 對于數(shù)據(jù)的查詢,分為單條和多條查詢,我們在這里分為兩個方法去實現(xiàn)。同理使用
$this->getModel()->where($where)->find();可以實現(xiàn)單條查詢的邏輯,$where是查詢的條件,例如:$where = [‘name’=>’張三’],這個條件就是查詢name姓名為張三的數(shù)據(jù)對象。如果使用主鍵進行單條查詢,可以直接使用$this->get($id)的方法獲取。
多條數(shù)據(jù)查詢,如果不分頁的情況下,寫法和單條一樣,只是將find()改為select(),如果需要分頁查詢需要傳入page和limit(當(dāng)前頁數(shù)和每頁條數(shù))然后進行分頁查詢
其中when判斷了當(dāng)page和limit傳入的數(shù)據(jù)都大于0的時候才會進行分頁查詢,如果傳入0或者不傳,則默認查詢?nèi)康臄?shù)據(jù)。
3、 修改數(shù)據(jù),修改數(shù)據(jù)需要傳入一個條件和一個需要修改的數(shù)組變量,根據(jù)條件去修改對應(yīng)的數(shù)據(jù),$where負責(zé)查詢對應(yīng)的數(shù)據(jù),將對應(yīng)的數(shù)據(jù)修改成$data里面攜帶的參數(shù),注意,$where和$data里面的數(shù)組鍵必須是數(shù)據(jù)表里面存在的字段,此方法可以修改單條或者多條,取決于$where的查詢是單條還是多條,會返回被修改的數(shù)據(jù)條數(shù)。
4、 刪除數(shù)據(jù),如果數(shù)據(jù)表里面設(shè)置的刪除的字段,可以使用修改的方法將字段進行修改做到軟刪除,如果需要直接刪除數(shù)據(jù),則可是使用delete()方法。
四、創(chuàng)建services層數(shù)據(jù)處理文件
在app/services文件下創(chuàng)建test文件夾,并創(chuàng)建StudentServices.php的services層文件。創(chuàng)建完成之后,需要繼承BaseServices,并注入StudentDao
本次我們不對數(shù)據(jù)做任何處理,只是實現(xiàn)數(shù)據(jù)表的增刪改查所以,在services文件中可以直接寫好對應(yīng)的調(diào)用,也可以不用寫對應(yīng)的方法,系統(tǒng)會自動找到dao層的方法進行處理
五、創(chuàng)建控制器以及路由文件
路由文件增加對應(yīng)五個方法的路由,添加,查詢單條,查詢多條,修改,刪除
對應(yīng)控制器中的五個方法,控制器需要先注入StudentServices,才能使用services中的方法,控制器中,獲取參數(shù)使用request中的getMore或者postMore來獲取,到此調(diào)用對應(yīng)的接口,就可以實現(xiàn)數(shù)據(jù)庫簡單的增刪改查了。
總結(jié):CRMEB系統(tǒng)中,每個層級是非常清楚的,controller用來接受和發(fā)送數(shù)據(jù),services用來組合數(shù)據(jù)邏輯處理,dao層是用來對數(shù)據(jù)庫的增刪改查,model是數(shù)據(jù)庫的模型類,弄懂了這些邏輯和文件層級,以后在在開發(fā)中會更方便和快捷。
您如果還想了解更多標(biāo)準(zhǔn)版的功能技術(shù)規(guī)則等問題,可以關(guān)注CRMEB官網(wǎng)-行業(yè)新聞。有更多實用的技術(shù)知識為您分享!
[免責(zé)聲明]
原文標(biāo)題: CRMEB單商戶系統(tǒng)二開小妙招——從創(chuàng)建數(shù)據(jù)表到實現(xiàn)最基礎(chǔ)增刪改查的實現(xiàn)過程
本文由作者原創(chuàng)發(fā)布于36氪企服點評;未經(jīng)許可,禁止轉(zhuǎn)載。




