php中tp thinkphp中M 方法有什麼用

2021-10-22 21:40:28 字數 2106 閱讀 7222

在thinkphp中,m()方法可以用於例項化乙個基礎模型類。

m方法和d方法的區別在於:

1、不需要自定義模型類,減少io載入,效能較好;

2、例項化後只能呼叫基礎模型類(預設是model類)中的方法;

3、可以在例項化的時候指定表字首、資料庫和資料庫的連線資訊;

d方法的強大則體現在你封裝的自定義模型類有多強,不過隨著新版thinkphp框架的基礎模型類的功能越來越強大,m方法也比d方法越來越實用了。

m方法的呼叫格式:m('[基礎模型名:]模型名','資料表字首','資料庫連線資訊')

我們來看下m方法具體有哪些用法:

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操作的話,只是個別模型有一些複雜的業務邏輯需要封裝,那麼第一種方式和第二種方式的結合是乙個不錯的選擇。

3、傳入表字首、資料庫和其他資訊

m方法有三個引數,第乙個引數是模型名稱(可以包括基礎模型類和資料庫),第二個引數用於設定資料表的字首(留空則取當前專案配置的表字首),第三個引數用於設定當前使用的資料庫連線資訊(留空則取當前專案配置的資料庫連線資訊),例如:$user = m('db2.user','think_');

表示例項化model模型類,並操作db2資料庫中的think_user表。

如果第二個引數留空或者不傳,表示使用當前專案配置中的資料表字首,如果操作的資料表沒有表字首,那麼可以使用:$user = m('db1.user',null);

表示例項化model模型類,並操作db1資料庫中的user表。

如果你操作的資料庫需要不同的使用者賬號,可以傳入資料庫的連線資訊,例如:$user = m('user','think_','mysql://user_a:1234@localhost:3306/thinkphp');

表示基礎模型類用model,然後對think_user表進行操作,用user_a賬號進行資料庫連線,運算元據庫是thinkphp。

第三個連線資訊引數可以使用dsn配置或者陣列配置,甚至可以支援配置引數。

例如,在專案配置檔案中配置了:'db_config'=>'mysql://user_a:1234@localhost:3306/thinkphp';

則可以使用:$user = m('user','think_','db_config');

基礎模型類和資料庫可以一起使用,例如:$user = m('commonmodel:db2.user','think_');

如果要例項化分層模型的話,利用公共模型類的方式,我們可以使用:m('userlogic:user');

來例項化userlogic,雖然這樣做的意義不大,因為可以用d('user','logic');

實現同樣的功能。

php中mysql函式 php中mysql有關函式

1.mysql query 一般是用來查詢資料裡面的資料。如 username post name sql select from members where login name username result mysql query sql 以上程式是檢測資料庫中是否存在表單傳送過來的使用者名稱...

php 中set是什麼 PHP中

php中把以兩個下劃線 開頭的方法稱為魔術方法 magic methods 這些方法在php中充當了舉足輕重的作用。其中 set 設定乙個類的成員變數時呼叫 set 的作用 set property,value 方法用來設定私有屬性,給乙個未定義的屬性賦值時,此方法會被觸發,傳遞的引數是被設定的屬性...

php 中set是什麼 PHP中

php中把以兩個下劃線 開頭的方法稱為魔術方法 magic methods 這些方法在php中充當了舉足輕重的作用。其中 set 設定乙個類的成員變數時呼叫 set 的作用 set property,value 方法用來設定私有屬性,給乙個未定義的屬性賦值時,此方法會被觸發,傳遞的引數是被設定的屬性...