thinkphp中的M方法和D方法

2021-06-09 19:22:14 字數 1034 閱讀 9535

thinkphp 中m方法和d方法都用於例項化乙個模型類,m方法 用於高效例項化乙個基礎模型類,而 d方法 用於例項化乙個使用者定義模型類。

使用m方法

如果是如下情況,請考慮使用 m方法:

1.對資料表進行簡單的 curd 操作而無複雜的業務邏輯時

2.只有個別的表有較為複雜的業務邏輯時,將 m方法 與例項化 commonmodel 類進行結合使用

m方法 甚至可以簡單看著就是對參數列名對應的資料表的操作:

$user = m('user');

使用d方法

如果是如下情況,請考慮使用 d方法:

1.需要使用 thinkphp 模型中一些高階功能如自動驗證功能(create()方法中實現)、關聯模型等

2.業務邏輯比較複雜,且涉及的表眾多

3.將業務邏輯定義在了自定義的模型類裡面(lib/model目錄下),而想在操作中實現這些業務邏輯

另外 d方法 不支援跨專案呼叫,需要使用:

$user = d('user', 'admin'); // 例項化 admin 專案下面的 user 模型

$user = d('admin.user'); // 啟用了專案分組

啟用了專案分組後,model 類並不必然對應著專案分組。多個專案組之間共有的模型類,統一放在 model 目錄下,可以直接使用d('modelname') 例項化。而 d('user.userinfo') 並不表示 user 一定是乙個專案分組,也可以僅僅是對 model 下檔案的乙個分類目錄,d('user.userinfo') 例項化的是 user 目錄下的 userinfo 模型類。

總結m方法 和 d方法 都可以在模型類檔案不存在的情況下直接使用的,但顯然 m方法 更高效;但要使用模型類裡面業務邏輯,就必須使用 d方法。

乙個比較形象的比喻就是:m方法 就如一台剛裝好作業系統的電腦,只能使用一些基本功能;而 d方法 就如在裝好的系統上再安裝了一些如 office、qq 等應用軟體,功能更加強大,同時整個電腦執行速度也變慢了。

以上是對 m方法和d方法區別的一些總結,m方法 和 d方法 要根據實際情況來具體選擇。

ThinkPHP 中M方法和D方法的具體區別

thinkphp 中m方法和d方法都用於例項化乙個模型類,m方法 用於高效例項化乙個基礎模型類,而 d方法 用於例項化乙個使用者定義模型類。如果是如下情況,請考慮使用 m方法 對資料表進行簡單的 curd 操作而無複雜的業務邏輯時 只有個別的表有較為複雜的業務邏輯時,將 m方法 與例項化 commo...

ThinkPHP 中M方法和D方法的具體區別

thinkphp 中m方法和d方法都用於例項化乙個模型類,m方法 用於高效例項化乙個基礎模型類,而 d方法 用於例項化乙個使用者定義模型類。如果是如下情況,請考慮使用 m方法 對資料表進行簡單的 curd 操作而無複雜的業務邏輯時 只有個別的表有較為複雜的業務邏輯時,將 m方法 與例項化 commo...

ThinkPhp中M和D的區別

d函式例項化的是 你當前專案的lib model下面的模組 如果該模組不存在的話 直接返回例項化model的物件 意義就與m 函式相同 而m 只返回 例項化 model的物件.它的 name引數 作為資料庫的表名來處理對資料庫的操作 通俗點說,d就是例項化乙個基於model檔案的model,而m則是...