天天看點

從建立資料表到實作最基礎增删改查的實作全過程【帶附件】

很多使用了 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 層資料操作的功能實作。

二、建立 dao 層資料庫操作檔案

在 app/dao 檔案下建立 test 檔案夾,并建立 StudentDao.php 的 Dao 層檔案。

建立完成之後,需要繼承 BaseDao,并設定之前建立的 Student 模型

protected function setModel(): string  

{  

    return Student::class;  

}      
從建立資料表到實作最基礎增删改查的實作全過程【帶附件】

在這裡,我們對資料表的增删改查分别寫一個方法,查詢分為多條和單條,一共五個方法。

使用 $this->getModel() 方法可以擷取在上方設定的模型執行個體化對象,該檔案下的所有方法都可以使用此方法進行模型的執行個體化,

  1. 新增資料時,使用 $this->getModel()->save($data);即可實作資料的新增邏輯,$data 為想要新增的資料,數組類型。
從建立資料表到實作最基礎增删改查的實作全過程【帶附件】
  1. 對于資料的查詢,分為單條和多條查詢,我們在這裡分為兩個方法去實作。同理使用

$this->getModel()->where($where)->find(); 可以實作單條查詢的邏輯,$where 是查詢的條件,例如:$where = [‘name’=>’張三’],這個條件就是查詢 name 姓名為張三的資料對象。如果使用主鍵進行單條查詢,可以直接使用 $this->get($id) 的方法擷取。

從建立資料表到實作最基礎增删改查的實作全過程【帶附件】

多條資料查詢,如果不分頁的情況下,寫法和單條一樣,隻是将 find() 改為 select(),如果需要分頁查詢需要傳入 page 和 limit(目前頁數和每頁條數)然後進行分頁查詢

從建立資料表到實作最基礎增删改查的實作全過程【帶附件】

其中 when 判斷了當 page 和 limit 傳入的資料都大于 0 的時候才會進行分頁查詢,如果傳入 0 或者不傳,則預設查詢全部的資料。

  1. 修改資料,修改資料需要傳入一個條件和一個需要修改的數組變量,根據條件去修改對應的資料,$where 負責查詢對應的資料,将對應的資料修改成 $data 裡面攜帶的參數,注意,$where 和 $data 裡面的數組鍵必須是資料表裡面存在的字段,此方法可以修改單條或者多條,取決于 $where 的查詢是單條還是多條,會傳回被修改的資料條數。
從建立資料表到實作最基礎增删改查的實作全過程【帶附件】
  1. 删除資料,如果資料表裡面設定的删除的字段,可以使用修改的方法将字段進行修改做到軟删除,如果需要直接删除資料,則可是使用 delete() 方法。
從建立資料表到實作最基礎增删改查的實作全過程【帶附件】

三、建立 services 層資料處理檔案

在 app/services 檔案下建立 test 檔案夾,并建立 StudentServices.php 的 services 層檔案。建立完成之後,需要繼承 BaseServices,并注入 StudentDao

從建立資料表到實作最基礎增删改查的實作全過程【帶附件】

本次我們不對資料做任何處理,隻是實作資料表的增删改查是以,在 services 檔案中可以直接寫好對應的調用,也可以不用寫對應的方法,系統會自動找到 dao 層的方法進行處理

從建立資料表到實作最基礎增删改查的實作全過程【帶附件】
  • 建立控制器以及路由檔案

路由檔案增加對應五個方法的路由,添加,查詢單條,查詢多條,修改,删除

從建立資料表到實作最基礎增删改查的實作全過程【帶附件】

對應控制器中的五個方法,控制器需要先注入 StudentServices,才能使用 services 中的方法,控制器中,擷取參數使用 request 中的 getMore 或者 postMore 來擷取,到此調用對應的接口,就可以實作資料庫簡單的增删改查了。

從建立資料表到實作最基礎增删改查的實作全過程【帶附件】

總結:CRMEB 系統中,每個層級是非常清楚的,controller 用來接受和發送資料,services 用來組合資料邏輯處理,dao 層是用來對資料庫的增删改查,model 是資料庫的模型類,弄懂了這些邏輯和檔案層級,以後在在開發中會更友善和快捷。