Model文件位置


ThinkPHP使用的是MVC架构,所以我们我们在操作数据库时,首先需要创建自己的Model类。

在每个模块下有个Model文件夹,我们可以将Model类放置在该文件夹下。如果多个模块需要使用同一的Model,则可以选择在项目的下创建Model文件夹来存放Model

配置数据库


在使用Model类来操作数据时,应先把数据库配置好。在每个模块下有个Conf/config.php文件,我们可以在里面配置数据库。

数据库配置

<?php
return array(
//'配置项'=>'配置值'
'SHOW_PAGE_TRACE'=>true,
'MODULE_ALLOW_LIST' => array('Home','Admin','Public'),
'MODULE_DENY_LIST' => array('Common','Runtime'),
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => '127.0.0.1', // 服务器地址
'DB_NAME' => 'weibo', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => 'admin', // 密码
);

定义Model类


一个Model类对应一张表,这里操作user表,所以我们的文件名应命名为UserModel.class.php。

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/6/20
* Time: 10:34
*/ namespace Home\Model;
use Think\Model; //父类Model Thinkphp/Think/library/Model.class/php
class UserModel extends Model{ }

如果我们不想这样写则可以在UserModel中直接指定表名

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/6/20
* Time: 10:34
*/ namespace Home\Model;
use Think\Model; //父类Model Thinkphp/Think/library/Model.class/php
class UserModel extends Model{
//该属性继承自Model类
protected $trueTableName = 'user';
}

控制器中实例化Model类


  • 普通方式
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/6/20
* Time: 10:39
*/ namespace Home\Controller;
use Think\Controller; class UserController {
public function showList(){
$users = new \Home\Model\UserModel();
var_dump($users);
}
}
  • 快捷方式

如果在开发中认为没必要去添加自己的Model类,则可以使用系统提供的Model。这个Model类其实就是我们在写自己的Model时,继承的那个Model类。

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/6/20
* Time: 10:39
*/ namespace Home\Controller;
use Think\Controller; class UserController {
public function showList(){
$m = M('user');
var_dump($m);
}
}

  $m就是一个model对象了。M函数会根据我们传入的表明来生成相应的Model对象。这里传入的是user字符串,所以$m对象操作的是数据库中的user表。

ThinkPHP之数据库操作的更多相关文章

  1. ThinkPHP中数据库操作返回值总结

    转自:http://www.baiwar.com/post/thinkphp-database-operations-in-the-return-value.html Thinkphp中的Think\ ...

  2. 【转】ThinkPHP中数据库操作返回值总结

    Thinkphp中的Think\Model类提供了数据库的基本CURD(Create.Update.Read及Delete),通过该类可以很便捷的进行操作.Model类及扩展类主要的方法有: Crea ...

  3. thinkphp 5数据库操作

    1.原生sql $options=Db::table('__MALL_POST__') ->alias('m') ->join('__MALL_CATEGORY_VALUE__ v','m ...

  4. thinkphp对数据库操作有哪些内置函数

    getModelName() 获取当前Model的名称 getTableName() 获取当前Model的数据表名称 switchModel(type,vars=array()) 动态切换模型 tab ...

  5. thinkphp一般数据库操作

    引入命名空间 插入 更新 查询 删除 一些支持命令行的操作 清空操作 分库操作 分库相关配置---在config.php中进行 使用: 参数绑定 占位符绑定 第一句后半拉

  6. thinkphp 对数据库的操作

    查看ThinkPHP完全开发手册3.1 首先编辑配置文件 thinkphp这个数据库就不乱改了 昨天新建了一个 confluence(utf8)数据库 所以就用它学习一下吧,因为就只建立了一个数据库, ...

  7. thinkPHP数据库操作

    thinkPHP如果要对数据库操作,一般来说首先要做的是在配置文件中链接数据库,然后用M方法实例化一张表,然后就是对表的操作了 可以开启调试功能查看程序执行的sql语句: 1.开启调试功能(默认是已经 ...

  8. ThinkPHP 数据库操作(一) : 连接数据库

    ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操 作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理.采用 P ...

  9. 扣出thinkphp数据库操作类

    假如你是一位thinkphp的使用者,想必你会觉得thinkphp操作数据库非常方便.现在在你面前有一个非常小的作业,小到完全没有必要用thinkphp去完成它.但是你又觉得不用thinkphp的话, ...

随机推荐

  1. 烂泥:通过vsphere给esxi添加本地硬盘

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 公司ESXi服务器的硬盘空间不够使用,现在新加了一块硬盘在ESxi服务器上.在服务器上添加完硬盘后,在Vsphere上是看不到新加硬盘的. 下面我们来通 ...

  2. Java基础の第一弹

    一.虚拟机的工作机制 (1) :通过 ClassLoader 寻找和装载 class 文件 (2) :解释字节码成为指令并执行,提供 class 文件的运行环境 (3) :进行运行期间垃圾回收 (4) ...

  3. 21 数据库编程 - 《Python 核心编程》

  4. Android+Sqlite 实现古诗阅读应用(一)

    不说网络app,很多本地的app都有一些随机的内容推送,比如随机推送一些小知识,古诗,名言名画什么的,界面制作的好看一点就能看起来特别的文艺范, 最近就是看了这样的一些应用,就想自己实现一下,这种方法 ...

  5. JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置

    [声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4134921.html [开发环境] 物理机版本:Win 7旗舰版(64位 ...

  6. TestLink学习四:TestLink1.9.13使用说明

    前言 测试管理工具,是指用工具对软件的整个测试输入.执行过程和测试结果进行管理的过程.可以提高回归测试的效率.大幅提升测试时间.测试质量.用例复用.需求覆盖等. TestLink用于进行测试过程中的管 ...

  7. java 16-8 泛型高级之通配符

    泛型高级(通配符) ?:任意类型,如果没有明确,那么就是Object以及任意的Java类了 ? extends E:向下限定,E及其子类 ? super E:向上限定,E极其父类 import jav ...

  8. Lua笔记(2)

    函数高级特性 像新版c++一样,lua支持lambda表达式.也就是可以在函数内部声明函数.内层的函数可以访问外一层函数的局部变量. 一个函数以及它会访问到的外层函数的变量,称为闭包.这些变量又被称为 ...

  9. 如何用chrome插件使上网生活更美好-持续更新

    所有插件都可以到Chrome Web Store搜索下载 1.Read Later Fast v-1.6.8 ***刷网页的时候,有很多值得我们阅览但当时木有时间看怎么办? --加可书签啊! ***可 ...

  10. Netty关闭客户端

    在启动客户端的时候,我们一般会 channelFuture.channel().closeFuture().sync(); 这是一段阻塞的代码,除非链路断了,否则是不会终止的,我们可以在handler ...