2、實例化后只能調用基礎模型類(默認是Model類)中的方法;
3、可以在實例化的時候指定表前綴、數據庫和數據庫的連接信息;
D方法 " /> 亚洲va中文va欧美va爽爽,日本a一级片,婷婷久久综合九色综合九七

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

ThinkPHP之M方法實例詳解

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

1、不需要自定義模型類,減少IO加載,性能較好;
2、實例化后只能調用基礎模型類(默認是Model類)中的方法;
3、可以在實例化的時候指定表前綴、數據庫和數據庫的連接信息;
D方法的強大則體現在你封裝的自定義模型類有多強,不過隨著新版Thinkphp框架的基礎模型類的功能越來越強大,M方法也比D方法越來越實用了。

M方法的調用格式:

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

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

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

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

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

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

$User = M('User');

其實等效于:

$User = new Model('User');

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

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

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

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

改用法其實等效于:

$User = new CommonModel('User');

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

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技術ThinkPHP之M方法實例詳解,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: aⅴ一区二区三区无卡无码 aaaaaa精品视频在线观看 | 色网在线 | 亚洲第一免费网站 | xf在线a精品一区二区视频网站 | 伊人久久香 | 美女黄网站 | 色偷偷91久久综合噜噜噜 | 亚洲欧美综合另类图片小说区 | 亚洲乱亚洲乱妇41p国产成人 | 免费一级毛片不卡不收费 | 深夜福利一区 | 精品一区二区三区五区六区七区 | 色狠狠成人综合网 | 二区久久国产乱子伦免费精品 | 久久久久久久国产精品 | 玖玖精品 | 黄色在线观看网站 | 欧美激情午夜 | 一区二区三区免费在线观看 | 欧美另类videosbestsex亚洲 | 国产91精品久久久久久久 | 久久伊人一区二区三区四区 | 国产一级特黄全黄毛片 | 男人的天堂久久精品激情a 男人进去女人爽免费视频国产 | 好吊妞视频haodiaoniucom | 韩国一级成a人片在线观看 韩国一级毛片 | 欧美久草 | 日本免费一区二区三区a区 日本免费一区二区三区看片 | 亚洲大色| 色婷婷成人 | 综合久久五月天 | 亚洲综合久久伊人热 | 成人sq视频在线观看网站 | 国产男人女人做性全过程视频 | 亚洲综合第一 | 欧美日韩亚洲一区二区精品 | 国产午夜亚洲精品不卡福利 | 天天干天天舔 | 中文有码中文字幕免费视频 | 综合久久精品 | 精品国产成人高清在线 |