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

首頁 > 開發 > ThinkPHP > 正文

ThinkPHP之實例化模型

2024-09-09 15:19:51
字體:
來源:轉載
供稿:網友

四種實例化模型的方式:

方式一:創建一個基礎模型(實例化一個系統自帶的數據庫操作類);2.0以后更加科學方便,實例化一個數據庫操作類的時候,可以不用自己去定義一個數據庫操作類,thinkphp會自動的去找到數據庫當中的表,并且把表當中的字段全部拿過來,直接操作的對象就是操作的這張表:

$user=new Model("User");<==>$user=M("User");

User首字母大寫,我們命名表的時候表名:think_user,在這個當中thinkphp會按照大小寫來區別你在前面有沒有下劃線,think_user_message_id,$mes=new Model("UserMessageID");而寫think_userMessageId,則不行.

方式二:實例化一個表的時候,同時實例化自己寫的自定義數據庫模型操作類

Model文件夾下:

  1. class CommonModel extends Model{ 
  2. function abc(){ 
  3.    echo "我的common模型里的方法abc輸出的"
  4.    } 

Action文件夾下:

  1. $user=M('User','CommonModel');<==>$user=new CommonModel('User'); 
  2. $list = $user->select(); 
  3. dump($list); 
  4. $list -> abc(); 

方式二:可以實現更加復雜的業務邏輯

方式三:(實例化一個用戶定義的模型)

需要用戶手動創建一個模型,可以針對這個表(如user),來寫上一個自定義模型,在自定義模型中可以封裝thinkphp為我們提供的高級功能,還可以封裝一些自定義方法來實現更加復雜的業務邏輯.

Model文件夾下:

  1. class UserModel extends Model{ 
  2. function aa(){ 
  3.  echo "aaaaaaaaaaaaaaaaaaa"
  4.  } 

Action文件夾下:

  1. $user = new UserModel();<==>$user=D("User"); 
  2. $list = $user->select(); 
  3. dump($list); 
  4. $user->aa(); 

第二種方式和第三種方式的不同在于

第二種方式:在你的業務邏輯中通常情況下有一些公共的業務邏輯,公共的邏輯每次單獨定義模型很麻煩,而采用方式二就很方便,公共的業務邏輯可以放到CommonModel中

第三種方式:適用于只針對所操作表的更加復雜的業務邏輯,但是它不需要使用到公共業務邏輯(它的業務邏輯

針對用戶表,它是唯一的,不需要在其他模型中使用)

方式四:此種方式實例化一個空模型,并不知道你要實例化操作的哪一張表,此時的查詢語句中必須要加表前綴:

  1. $user=new Model();<==>$user=M(); 
  2. $list = $user->query("select * from think_user"); 
  3. dump($list); 

:D()方法和new Model()的不同:

D()方法:可以自動檢測模型類,不存在時會拋出一個異常,同時對于一個已經實例化的模型不會重復

實例化,默認的D()只能支持調用當前項目(應用)下的模型;如果是前臺項目(home)中,想實例化后臺項目(admin)的模型怎么操作:$user=D('admin','User');如果啟用分組:$user=D("admin.user");

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 中卫市| 陵水| 兴安县| 西乌珠穆沁旗| 东方市| 纳雍县| 达日县| 太湖县| 新泰市| 夹江县| 曲麻莱县| 扎鲁特旗| 庄河市| 卢龙县| 思茅市| 昆山市| 福安市| 玛沁县| 会同县| 清水县| 平泉县| 乌拉特前旗| 荔波县| 许昌县| 丹东市| 邯郸县| 柘城县| 固安县| 兴和县| 孟村| 定兴县| 萍乡市| 博罗县| 涪陵区| 拜泉县| 桂平市| 江门市| 紫金县| 赣州市| 新化县| 浑源县|