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()方法,写参数和没有写参数是不同的。
写参数就有这张表。显示结果:
只要出现表的字段信息,就能操作这张表。比如字段信息:
TP框架---Model模型层---做模型对象的更多相关文章
- tp框架-----Model模型层
1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数 ...
- 第四章、Django之模型层---创建模型
目录 第四章.Django之模型层---创建模型 一.写models.py 第四章.Django之模型层---创建模型 一.写models.py from django.db import model ...
- 二 Djano模型层之模型字段选项
字段选项 以下参数是全部字段类型都可用的,而且是可选的 null 如果为True,Django将在数据库中将空值存储为NULL.默认值为False 对于字符串字段,如果设置了null=True意味着& ...
- tp框架---View视图层---模板继承(举例说明)
当我们做动态页面时,我们会发现一个网站的头部和尾部是相同的,那么我们如何用tp框架来做模板呢 ? 先看一下注意事项: (1)每个区块由<block></block>标签组成 ( ...
- django模型层优化(关联对象) 懒加载和预加载 +长链接
懒加载 存在于外键和多对多关系不检索关联对象的数据调用关联对象会再次查询数据库 问题根源 查看django orm的数据加载,两次. 查询user,查询menu 预加载的方法 预加载单个关联对象--s ...
- Django的日常-模型层(1)
目录 Django的日常-模型层(1) 模型层 django测试环境 ORM查询 Django的日常-模型层(1) 模型层 模型层其实就是我们应用名下的models.py文件,我们在里面写入想要创建的 ...
- TP框架 基础1
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...
- TP框架---thinkphp基础知识
php框架 发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...
- 2016/05/10 thinkphp 3.2.2 ①系统常量信息 ②跨控制器调用 ③连接数据库配置及Model数据模型层 ④数据查询
[系统常量信息] 获取系统常量信息: 如果加参数true,会分组显示: 显示如下: [跨控制器调用] 一个控制器在执行的时候,可以实例化另外一个控制,并通过对象访问其指定方法. 跨控制器调用可以节省我 ...
随机推荐
- ASP.Net 之委托事件
1.首先给一张图让大家了解什么是委托?它的优缺点是什么? 2.通过代码的运用更深入地了解委托事件(窗体应用程序) 1)下面我们先定义一个无参数的委托. //1.0 定义一个自定义的委托,此委托的签名是 ...
- [PHP] 通用网关接口CGI 的运行原理
CGI 的运行原理:1.客户端访问某个 URL 地址之后,通过 GET/POST/PUT 等方式提交数据,并通过 HTTP 协议向 Web 服务器发出请求.2.服务器端的 HTTP Daemon(守护 ...
- 六:SpringCloud-Config
十:SpringCloudConfig分布式配置中心 1. 概述 1.1 分布式系统面临的 配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的 ...
- 令人头疼的Connection Reset
背景: 要爬取某网站的数据,数据每页10条,有很多页(形式如同table表格).使用HttpClient 逐行逐页爬取数据,但在循环爬取多次时,总会在不确定的位置报错 在检查代码逻辑无果之后,开始疯狂 ...
- eclipse 查看源码 source not found
是因为eclipse里面没有设置好源码路径. 源码路径在jdk安装包里面 C:/Program Files/Java/jdk1.8.0_191/src.zip 这个src.zip文件, 设置ecli ...
- ASP.NET MVC与ASP.NET WebForm
ASP.NET MVC是微软公司的一款WEB开发框架,整合了“模型-视图-控制器”架构的高效与整洁,是敏捷开发最现代的思想与技术.它是传统ASP.NET WebForm的一个完善的替代品. 1.当今的 ...
- css常见的快捷开发代码汇总(长期更新)
http://caibaojian.com/popular-css-snippets.html
- Java常见异常类
NullpointException(空指针异常)ClassNotFoundException(类找不到异常)ClassCastException(类型转换异常)IllegalArgumentExce ...
- PHP在foreach中对$value赋值无效,应该用 ‘键’ 或者 &$value的形式
首先我们看下这段代码: foreach ($data as$value) { $value['name'] = 'Hehe'; } $data中原始的数据为: array(1) { [0] => ...
- 50+ Useful Docker Tools
As containers take root, dozens of tools have sprung up to support them. Check out your options for ...