zoukankan      html  css  js  c++  java
  • 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 HomeModel;  这个命名空间从根开始它的根是Home,Home模块下的Model文件夹

    这个类也要继承父类Model类,父类在Library-----Think------Model.class.php

     所以要使用它的父类,use ThinkModel;  Think代表的是这个类所在的根 ,Think文件夹下有个类文件叫Model .class.php

    class infoModel extends Model                    

     

    /*$m = new HomeModelInfoModel();

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

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

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

     

     

  • 相关阅读:
    627. Swap Salary
    176. Second Highest Salary
    596. Classes More Than 5 Students
    183. Customers Who Never Order
    181. Employees Earning More Than Their Managers
    182. Duplicate Emails
    175. Combine Two Tables
    620. Not Boring Movies
    595. Big Countries
    HDU 6034 Balala Power! (贪心+坑题)
  • 原文地址:https://www.cnblogs.com/yuyu1993/p/5724174.html
Copyright © 2011-2022 走看看