thinkPHP3.2框架——Model實例化模型

模型:

模型是MVC三大組成部分的M(Model),作用是操縱數據,負責與數據表的數據交互

 

創建模型類:

命名規範:

模型名(要求是不帶前綴的表名並且首字母要大寫)+Model關鍵詞+.class.php

  • 按照系統的規範來命名模型類的話,大多數情況下是可以自動對應數據表。

 

代碼結構規範:

  • 第一步:聲明命名空間
  • 第二步:映入父類模型
  • 第三步:聲明模型並繼承父類

例如:創建一個樹木模型文件

命名:TreeModel.class.php

<?php

//命名空間
namespace Home\Model;
//引用父類模型
use Think\Model;
//聲明模型並繼承父類
class TreeModel extends Model {

}

 

模型的實例化操作

因爲模型本質是一個類,所以在使用模型的時候需要實例化。

 

普通實例化方法:

$obj = new 命名空間TreeModel();

 

快速實例化方法(D和M函數):

區別:

M("表名"):實例化系統附列model,命名空間爲:Think\Model

D("自定義類名"):實例化我們自定義類名,命名空間爲:Admin\Model\類名Model

  • D方法功能更強大,因爲後面在自定義模型類中添加很多方法和設置,這時候只能通過實例化D()去調用。
  • 如果D方法沒有找到定義的模型類,則會自動調用M方法

 

D方法:$obj = D(["模型名"]);

實例化我們自己創建的模型(分組/Model目錄中);

  • 如果傳遞了模型名,則實例化指定的模型,
  • 如果沒有指定或者模型名不存在,則直接實例化父類模型(Model.class.php)。
$User = D('User');//實例化模型
// 相當於 $User = new \Home\Model\UserModel();
// 執行具體的數據操作
$User->select();
 
當 \Home\Model\UserModel 類不存在的時候,D函數會嘗試實例化公共模塊下面的 \Common\Model\UserModel 類。
D方法還可以支持跨模塊調用,需要使用:
//實例化Admin模塊的User模型
D('Admin/User');

 

M方法:$obj = M([‘不帶前綴的表名’]);

直接實例化父類模型(Think目錄下的Model.class.php);

  • 如果指定了表名,則實例化父類模型的時候關聯指定的表;
  • 如果沒有指定表名(沒有傳遞參數)則不關聯表,一般用於執行原生的sql語句(M() -> query(原生的sql語句))。
$User = M('User');// 使用M方法實例化
// 和用法 $User = new \Think\Model('User'); 等效
// 執行其他的數據操作
$User->select();

 

實例化空模型類:

空模型也能進行數據表的基本操作(CURD),因爲模型繼承了父類,所以可執行基本的操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章