ThinkPHP 例項化模型的方法

2022-03-16 04:47:54 字數 1093 閱讀 2482

1、例項化乙個

model

$array = explode('.', $name);

$name = array_pop($array); // 對於類似aaa.bbb.ccc結構檔名的model類,只取到第一節

2、例項化乙個沒有模型檔案的model

function m($name='', $class='model')

3、model類建構函式

public function __construct($name='',$connection='') elseif(empty($this->name))

// 資料庫初始化操作

// 獲取資料庫操作物件

// 當前模型有獨立的資料庫連線資訊

$this->db(0,empty($this->connection)?$connection:$this->connection);

// 設定表字首

$this->tableprefix = $this->tableprefix?$this->tableprefix:c('db_prefix');

$this->tablesuffix = $this->tablesuffix?$this->tablesuffix:c('db_suffix');

// 字段檢測

if(!empty($this->name) && $this->autocheckfields) $this->_checktableinfo();

}總結:

避免重複載入乙個模型,即,為了對同乙個模型只例項化一次,兩種方法中都使用了靜態陣列變數做例項化記錄。

d方法的返回結果有三種:name為空則返回空模型例項;已經例項化就返回例項;載入相應模型檔案並返回例項。其中載入模型返回例項的具體操作分為兩步:第一步,根據引數確認模型檔案目錄並載入模型檔案。第二步,判斷類是否已經存在,即是否載入成功,也就是說模型檔案是否存在規定目錄,然後使用載入模型檔案或模型基類例項化模型,最後返回例項。

m方法就是返回乙個已經存在的例項或者返回乙個新的(model或者其他模型類)例項。

模型例項化 thinkphp

當定義了模型之後,需要在操作中將模型例項化才能具體實現模型中的業務邏輯。不同的資料業務規則會有不同的模型定義,而在例項化模型的時候也可能不同。thinkphp 支援如下幾種例項化模型 例項化基礎模型類 例項化其他模型類 例項化使用者自定義模型類 例項化空模型類 thinkphp支援在沒有定義任何模型...

ThinkPHP 例項化模型

1.例項化基本模型 user new model s 引數為 表名,表字首,資料庫連線資訊 後2個已經在config.php中設定 user m s m方法 效果和new model相同 引數相同 data user select dump data 2.例項化使用者自定義模型 user new a...

Thinkphp模型的例項化

thinkphp模型的例項化 是我們在使用thinkphp開發的過程中經常會使用到的,像在需要使用資料表的時候,我們就要經常進行例項化。我們來看乙個模型例項化的例子 user new model user 在thinkphp為我們封裝好了乙個方法m來更加方便的來進行模型的例項化,例如上面的可以寫成 ...