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

                                TP框架----Model模型層---------------作模型對象php

Model模型層是用來作什麼的呢????mysql

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

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

Model模型怎樣使用呢???緩存

要使用Model模型層訪問數據庫的話,須要作配置,由於必須把數據庫的一些參數配置好以後,才能鏈接,因此找到Config.php服務器

                                        配置文件,打開框架

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

                                                                     要把這些粘貼到config.php編碼

                                                                      進行修改。spa

 

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()方法,寫參數和沒有寫參數是不一樣的。

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

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

相關文章
相關標籤/搜索