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()方法,写参数和没有写参数是不一样的。

写参数就有这张表。显示结果:

只要出现表的字段信息,就能操做这张表。好比字段信息:

相关文章
相关标签/搜索