模型學習
在MVC里面,M是負責對數據的處理,其實在TP5里面模型封裝的已經很好了,基本上我們不用做過多的操作,使用系統自帶的基類即可完成大部分的curd操作。
模型定義
需要寫在模塊的model目錄下,我們可以使用TP5自帶的命令行工具進行生成。
注意1:在TP5里面模型也不在使用類后綴,直接就是使用去除表前綴后的名稱作為模型的名稱。(模型名稱使用大駝峰的方式)
例如:表的名稱為 sh_admin 對應的模型文件名稱 Admin.php
例如:表的名稱為 sh_goods_attribute 對應的模型文件名稱 GoodsAttribute.php
>php think make:model app\index\model\User
創建后
定義sh_user表
上面的模型和下面的sh_user是對應的
基本操作-增加
完成數據的增加主要有如下幾種方法
- 模型對象的save方法(先為對象設置屬性)
- 模型類的create靜態方法
- 模型對象的saveAll批量添加方法
實操:
1.模型對象的save方法(先為對象設置屬性)
2.模型類的create靜態方法【簡化操作】
3.模型對象的saveAll批量添加方法【上面的兩種操作,都只能完成單條數據的插入,如果批量插入數據,需要使用模型對象的saveAll方法】
基本操作-查看
查詢數據主要有如下幾種方法
- 模型類的get靜態方法【存在返回值為對象,否則為null】
- 通過字段查詢getByFieldname()方法
- 根據條件查詢get(['username' => 'root'])
- where方法查詢->find()
- where方法查詢->select()
- 模型類的all靜態方法和select靜態方法
實操:
1.模型類的get靜態方法【存在返回值為對象,否則為null】,通過傳遞主鍵獲取數據
效果
2.根據條件查詢get(['username' => 'root'])
方式一:
方式二:使用where方法傳遞(需要注意后面要通過find()方法調用一下)
3.通過模型對象的字段查詢getByFieldname('查詢條件')方法
- 模型類的where方法查詢,然后調用find()方法
5.where方法查詢->select()
方式一:
方式二:
6.模型類的all靜態方法和select靜態方法
注意:對應all和select方法返回的數據,是一個數組,數組中的每個元素是一個模型對象,如果我們需要把他們轉換為普通的二維數組(數組中的元素也是數組)
效果:
便捷方式獲取模型實例
在新版的Tp5里面可以有如下兩種便捷方式獲取模型實例:
方式一:使用model助手函數
方式二:使用TP5自帶的Loader類的model靜態方法
總結:在新版的TP5里面,在原先TP3.2里面的單字母函數D已經不存在,取而代之的是model函數。
基本操作-更新
更新數據主要有如下幾種方法
1.先 get(),后save()
2.模型類update靜態方法
實操:
1.先調用模型類的get()靜態方法,然后在調用模型對象的save()方法
2.模型類update靜態方法
方式一:
方式二:
基本操作-刪除
刪除數據主要有如下幾種方法
1.先使用模型類的get()靜態方法,然后在使用模型對象的delete()方法
2.模型類destroy靜態方法
實操:
1. 先使用模型類的get()靜態方法,然后在使用模型對象的delete()方法
2.模型類destroy靜態方法
3.使用destroy同時刪除多條數據
4.模型對象的delete方法進行刪除(需要傳遞刪除條件)