TP中模型實例化


模型的實例化操作(重點)

模型雖然已經創建完成,但是由於模型的本質是一個類,類在使用的時候需要實例化操作。

5.1、普通實例化方法

普通實例化方法是指通過自己編寫代碼來new一個對象。

$obj = new 類名();

 

在控制器中定義一個方法來實例化模型,使用的是普通方式實例化:

創建部門控制器文件:

 

 

實例化代碼:

 

實例化結果:

 

 

5.2快速實例化方法

上述的普通實例化方法雖然可以進行實例化操作,但是使用上比較麻煩,還需要考慮命名空間,所以ThinkPHP為了簡單、快速、高效開發,為我們提供了2快速方法可以對模型進行實例化操作:

M方法和D方法。

 

D方法實例化:

$obj = D([‘模型名’]);

表達的含義:實例化我們自己創建的模型(分組/Model目錄中);如果傳遞了模型名,則實例化指定的模型,如果沒有指定或者模型名不存在,則直接實例化父類模型(Model.class.php

 

M方法實例化:

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

表達的含義:直接實例化父類模型(Think目錄下的Model.class.php);如果指定了表名,則實例化父類模型的時候關聯指定的表;如果沒有指定表名(沒有傳遞參數)則不關聯表,一般用於執行原生的sql語句(M() -> query(原生的sql語句))。

 

案例:使用快速方法DM方法對模型進行實例化操作。

 

 

 

 

實例化代碼:

 

 

 

經典面試題:

問:實例化方法中D方法和M方法有什么區別?

答:D方法是實例化自定義模型,如果自定義模型不存在,則實例化父類模型;M方法本身就是直接實例化父類模型。兩者的差異就是實例化的對象不一樣。

 

在后期開發的時候怎么去選擇是使用D方法還是M方法呢?

可以根據自身的情況,如果需要使用的操作父類中已經封裝好了,則可以直接實例化父類(使用M方法),如果父類中方法不能滿足我們的開發需要求,需要自己定義方法,則這個時候可以使用D方法實例化自定義模型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM