5 回答

TA貢獻1921條經驗 獲得超9個贊
1、實例化基礎模型(Model) 類
在沒有定義任何模型的時候,我們可以使用下面的方法實例化一個模型類來進行操作:
//實例化User模型
$User = M('User');
//執行其他的數據操作
$User->select();
這種方法最簡單高效,因為不需要定義任何的模型類,所以支持跨項目調用。缺點也是因為沒有自定義的模型類,因此無法寫入相關的業務邏輯,只能完成基本的CURD操作。
$User = M('User');
其實等效于:$User = new Model('User');
表示操作think_user表。M方法和D方法一樣也有單例功能,多次調用并不會重復實例化。M方法的模型名參數在轉換成數據表的時候會自動轉換成小寫,也就是說ThinkPHP的數據表命名規范是全小寫的格式。
2、實例化其他公共模型類
第一種方式實例化因為沒有模型類的定義,因此很難封裝一些額外的邏輯方法,不過大多數情況下,也許只是需要擴展一些通用的邏輯,那么就可以嘗試下面一種方法。
$User = M('CommonModel:User');
改用法其實等效于:$User = new CommonModel('User');
因為系統的模型類都能夠自動加載,因此我們不需要在實例化之前手動進行類庫導入操作。模型類CommonModel必須繼承Model。我們可以在CommonModel類里面定義一些通用的邏輯方法,就可以省去為每個數據表定義具體的模型類,如果你的項目已經有超過100個數據表了,而大多數情況都是一些基本的CURD操作的話,只是個別模型有一些復雜的業務邏輯需要封裝,那么第一種方式和第二種方式的結合是一個不錯的選擇。
- 5 回答
- 0 關注
- 720 瀏覽
添加回答
舉報