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

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

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

TP框架---Model模型层---做模型对象的更多相关文章

  1. tp框架-----Model模型层

    1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数 ...

  2. 第四章、Django之模型层---创建模型

    目录 第四章.Django之模型层---创建模型 一.写models.py 第四章.Django之模型层---创建模型 一.写models.py from django.db import model ...

  3. 二 Djano模型层之模型字段选项

    字段选项 以下参数是全部字段类型都可用的,而且是可选的 null 如果为True,Django将在数据库中将空值存储为NULL.默认值为False 对于字符串字段,如果设置了null=True意味着& ...

  4. tp框架---View视图层---模板继承(举例说明)

    当我们做动态页面时,我们会发现一个网站的头部和尾部是相同的,那么我们如何用tp框架来做模板呢 ? 先看一下注意事项: (1)每个区块由<block></block>标签组成 ( ...

  5. django模型层优化(关联对象) 懒加载和预加载 +长链接

    懒加载 存在于外键和多对多关系不检索关联对象的数据调用关联对象会再次查询数据库 问题根源 查看django orm的数据加载,两次. 查询user,查询menu 预加载的方法 预加载单个关联对象--s ...

  6. Django的日常-模型层(1)

    目录 Django的日常-模型层(1) 模型层 django测试环境 ORM查询 Django的日常-模型层(1) 模型层 模型层其实就是我们应用名下的models.py文件,我们在里面写入想要创建的 ...

  7. TP框架 基础1

    php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...

  8. TP框架---thinkphp基础知识

    php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...

  9. 2016/05/10 thinkphp 3.2.2 ①系统常量信息 ②跨控制器调用 ③连接数据库配置及Model数据模型层 ④数据查询

    [系统常量信息] 获取系统常量信息: 如果加参数true,会分组显示: 显示如下: [跨控制器调用] 一个控制器在执行的时候,可以实例化另外一个控制,并通过对象访问其指定方法. 跨控制器调用可以节省我 ...

随机推荐

  1. Docker学习(一): 基本概念

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...

  2. Hadoop源码学习笔记(6)——从ls命令一路解剖

    Hadoop源码学习笔记(6) ——从ls命令一路解剖 Hadoop几个模块的程序我们大致有了点了解,现在我们得细看一下这个程序是如何处理命令的. 我们就从原头开始,然后一步步追查. 我们先选中ls命 ...

  3. HTTP的response code 1xx,2xx,3xx,4xx,5xx分别代表什么

    HTTP 状态码点击链接可了解详情.您也可以访问 HTTP 状态码上的 W3C 页获取更多信息. 1xx(临时响应):表示临时响应并需要请求者继续执行操作的状态码. 2xx (成功):表示成功处理了请 ...

  4. 百度翻译cs文件英文注释

    原由:本人英语烂,没办法看不懂国外的代码注释!只能借助其他手段来助我一臂之力了. 虽然翻译内容不是很准确,但好过什么都看不懂的强. 对吧?! 代码有点乱有用的园友自个整理一下吧! 最近没时间所以翻译后 ...

  5. python中logging日志基本用法,和进程安全问题

    低配版 import logging logging.debug('debug message') # 调试模式 logging.info('info message') # 正常运转模式 loggi ...

  6. jQuery全能图片滚动插件

    插件开发背景 随着前端开发领域越来越受到重视,前端开发也变得越来越火热.各种优秀的前端组件层出不穷.尤其是jQuery插件,很多前端组件都是基于jQuery开开发的. 图片滚动是前端开发中可以说是非常 ...

  7. 在Ubuntu 14.04.1 LTS 上安装gettext失败

    使用apt-get install -f,因为有额外的依赖.

  8. 转:在使用angularjs过程,ng-repeat中track by的作用

    转载:链接 <div ng-repeat="links in slides"> <div ng-repeat="link in links track ...

  9. 剑指Offer-编程详解-二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  10. zabbix安装故障点分析

    故障点分析:故障一:  2637:20151009:050431.719 [Z3001] connection to database 'zabbix' failed: [1045] Access d ...