TP框架---Model模型層---做模型對象


                                TP框架----Model模型層---------------做模型對象

Model模型層是用來做什么的呢????

主要是用來做操作數據庫訪問的。

也就說明TP框架自帶了一種訪問數據庫的方式,使用的是Model模型。

Model模型怎樣使用呢???

要使用Model模型層訪問數據庫的話,需要做配置,因為必須把數據庫的一些參數配置好之后,才能連接,所以找到Config.php

                                        配置文件,打開

                                                                    這些是關於數據庫的配置,

                                                                     要把這些粘貼到config.php

                                                                      進行修改。

 

config.php配置文件(修改配置的地方)

/* 數據庫設置 */

    'DB_TYPE'               =>  'mysql',     // 數據庫類型

    'DB_HOST'               =>  'localhost', // 服務器地址

    'DB_NAME'               =>  '',          // 數據庫名

    'DB_USER'               =>  'root',      // 用戶名

    'DB_PWD'                =>  '',          // 密碼

    'DB_PORT'               =>  '3306',        // 端口(數據庫的默認端口)

    'DB_PREFIX'             =>  '',    // 數據庫表前綴

    'DB_PARAMS'                =>  array(), // 數據庫連接參數   

    'DB_DEBUG'                             =>  TRUE, // 數據庫調試模式 開啟后可以記錄SQL日志

    'DB_FIELDS_CACHE'       =>  false,        // 啟用字段緩存(在開發的時候把它打成false,開發完之后打成true)

    'DB_CHARSET'            =>  'utf8',      // 數據庫編碼默認采用utf8

    'DB_DEPLOY_TYPE'        =>  0, // 數據庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器)

    'DB_RW_SEPARATE'        =>  false,       // 數據庫讀寫是否分離 主從式有效

    'DB_MASTER_NUM'         =>  1, // 讀寫分離后 主服務器數量

'DB_SLAVE_NO'           =>  '', // 指定從服務器序號

  

做好配置之后,就可以連接數據庫了。

 

                     在這個Main控制器里寫

首先,做一個方法

造操作方法

function DB()//造操作方法  //這個操作方法要操作數據庫,DB()方法名可隨便起

{

                   //怎樣使用模型層???

//TP框架里的Model,我們要做模型就要寫在Model文件夾下。數據庫里的每一張表,對應到TP框架里面就是這個TP框架的類,一張表對應TP框架里面的一個類,比如Info表對應到TP框架里面就是一個Info的模型類。表對應的類,表里的字段(就是列)對應過來就是成員變量。如果使用Info表,所使用的模型實際上就是InfoModel這樣一個類,InfoModel類如果不對Info的模型進行特殊的操作(如果不對Info表進行特殊的操作)做簡單的增刪改查可以不用做模型文件,可以是空的即使Model文件夾不做任何的模型文件依然可以操作數據庫。

只有當表進行了特殊的操作,在做Model文件(模型文件),例如在表里添加驗證就需要做模型。

//怎樣把模型類拿來使用呢???

//要操作hao表,怎樣做hao模型對象???

       //造對象有三種方法::

                   //1.原始方式根據命名空間找到類文件才能new出來。使用原始方式就必須要做模型文件了,即使模型文件里面內容是空的也要做,要有這個文件才能找到這個文件new出來。要用第一種原始方式的話,就要在Model文件夾下建一個文件出來。

建一個模型文件,要操作info表

要操作info表,所以表名打頭(如果數據庫里的表名是大寫就寫大寫,是小寫就寫小寫)

Model.Class.php(控制器)

這是一個類文件。這個類需要有命名空間。namespace Home\Model;  這個命名空間從根開始它的根是Home,Home模塊下的Model文件夾

這個類也要繼承父類Model類,父類在Library-----Think------Model.class.php

 所以要使用它的父類,use Think\Model;  Think代表的是這個類所在的根 ,Think文件夾下有個類文件叫Model .class.php

class infoModel extends Model                    

 

/*$m = new \Home\Model\InfoModel();

                   var_dump($m);*/

 

顯示的結果:

InfoModel的對象

                                                關於數據庫的信息

 

從哪里看對不對

造的Info表沒有問題的話,這里就顯示Info表的所有字段。能夠看到這個頁面,說明這個Model對象能夠造出來,並且數據庫的配置沒有問題,能夠找到這張表

 

 

//2.使用快捷方法D()

                   $m = D();  ///返回一個對象

                   //var_dump($m);

顯示的結果:

 

 

造了個父類的對象,就找不到這張表的信息了。因為沒有指定哪一張表所以找不到這張表的信息了。造了個父類的對象,是沒有表的信息的。說明在造對象時,沒有指定操作哪一張表的話,那造出的對象是一個父類對象,父類對象在操作的時候,比如要調用添加,添加數據,不知往哪一張表里添加,就會出問題。

所以在造的時候就要給它一個表名。

 

$m = D("Info");  ///返回一個對象

var_dump($m);

顯示結果:

造的對象是InfoModel對象


 

也就說明,,不用做模型文件,通過D()方法,依然可以生成InfoModel對象

D()方法,是new的減化版

 

         //3.使用快捷方法M()

                     $m = M();

               var_dump($m);

顯示結果:

 

 造了一個父類對象

說明,使用M()方法也可以造模型對象

 

               //$m = M("Nation");

                   //var_dump($m);

 

顯示結果:

 

對象是父類對象

 

 

這個M()方法和D()方法是有區別的。D()方法相當於new的簡化版,但是M()方法就是來造父類對象的。

M()方法,寫參數和沒有寫參數是不同的。

寫參數就有這張表。顯示結果:

只要出現表的字段信息,就能操作這張表。比如字段信息:

 

 


免責聲明!

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



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