国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

ThinkPHP函數(shù)詳解之M方法和R方法

2024-05-04 22:35:07
字體:
供稿:網(wǎng)友

首先給大家介紹ThinkPHP函數(shù)詳解:M方法

M方法用于實例化一個基礎(chǔ)模型類,和D方法的區(qū)別在于:

1、不需要自定義模型類,減少IO加載,性能較好;

2、實例化后只能調(diào)用基礎(chǔ)模型類(默認(rèn)是Model類)中的方法;

3、可以在實例化的時候指定表前綴、數(shù)據(jù)庫和數(shù)據(jù)庫的連接信息;

D方法的強大則體現(xiàn)在你封裝的自定義模型類有多強,不過隨著新版ThinkPHP框架的基礎(chǔ)模型類的功能越來越強大,M方法也比D方法越來越實用了。

M方法的調(diào)用格式:

M('[基礎(chǔ)模型名:]模型名','數(shù)據(jù)表前綴','數(shù)據(jù)庫連接信息')

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

1、實例化基礎(chǔ)模型(Model) 類

在沒有定義任何模型的時候,我們可以使用下面的方法實例化一個模型類來進(jìn)行操作:

//實例化User模型$User = M('User');//執(zhí)行其他的數(shù)據(jù)操作$User->select();

這種方法最簡單高效,因為不需要定義任何的模型類,所以支持跨項目調(diào)用。缺點也是因為沒有自定義的模型類,因此無法寫入相關(guān)的業(yè)務(wù)邏輯,只能完成基本的CURD操作。

$User = M('User');

其實等效于:

$User = new Model('User');

表示操作think_user表。M方法和D方法一樣也有單例功能,多次調(diào)用并不會重復(fù)實例化。M方法的模型名參數(shù)在轉(zhuǎn)換成數(shù)據(jù)表的時候會自動轉(zhuǎn)換成小寫,也就是說ThinkPHP的數(shù)據(jù)表命名規(guī)范是全小寫的格式。

2、實例化其他公共模型類

第一種方式實例化因為沒有模型類的定義,因此很難封裝一些額外的邏輯方法,不過大多數(shù)情況下,也許只是需要擴展一些通用的邏輯,那么就可以嘗試下面一種方法。

$User = M('CommonModel:User');

改用法其實等效于:

$User = new CommonModel('User');

因為系統(tǒng)的模型類都能夠自動加載,因此我們不需要在實例化之前手動進(jìn)行類庫導(dǎo)入操作。模型類CommonModel必須繼承Model。我們可以在CommonModel類里面定義一些通用的邏輯方法,就可以省去為每個數(shù)據(jù)表定義具體的模型類,如果你的項目已經(jīng)有超過100個數(shù)據(jù)表了,而大多數(shù)情況都是一些基本的CURD操作的話,只是個別模型有一些復(fù)雜的業(yè)務(wù)邏輯需要封裝,那么第一種方式和第二種方式的結(jié)合是一個不錯的選擇。

3、傳入表前綴、數(shù)據(jù)庫和其他信息

M方法有三個參數(shù),第一個參數(shù)是模型名稱(可以包括基礎(chǔ)模型類和數(shù)據(jù)庫),第二個參數(shù)用于設(shè)置數(shù)據(jù)表的前綴(留空則取當(dāng)前項目配置的表前綴),第三個參數(shù)用于設(shè)置當(dāng)前使用的數(shù)據(jù)庫連接信息(留空則取當(dāng)前項目配置的數(shù)據(jù)庫連接信息),例如:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 望江县| 天峻县| 博白县| 万全县| 梁河县| 武功县| 苏尼特左旗| 弥渡县| 玉龙| 深泽县| 营山县| 隆回县| 阿合奇县| 江城| 桂东县| 通榆县| 运城市| 台南市| 衡阳县| 松阳县| 博罗县| 高碑店市| 毕节市| 阜城县| 旅游| 达拉特旗| 富平县| 随州市| 张家港市| 榆中县| 珠海市| 德庆县| 铜山县| 贞丰县| 泰来县| 文昌市| 陆川县| 万山特区| 宕昌县| 丰台区| 信丰县|