国产探花免费观看_亚洲丰满少妇自慰呻吟_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");

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

圖片精選

主站蜘蛛池模板: 武穴市| 石门县| 共和县| 平顶山市| 宜州市| 贵州省| 定州市| 轮台县| 平乐县| 衡水市| 鄄城县| 黄石市| 无为县| 泾阳县| 台北县| 迁西县| 阜平县| 花莲县| 武强县| 从江县| 沙湾县| 武义县| 水富县| 郸城县| 滁州市| 阳朔县| 广河县| 监利县| 富顺县| 信丰县| 济南市| 永顺县| 兴宁市| 嫩江县| 个旧市| 平山县| 鄂托克前旗| 清新县| 治县。| 尖扎县| 田阳县|