ThinkPHP之数据库操作

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 HomeModel;
use ThinkModel;

//父类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 HomeModel;
use ThinkModel;

//父类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 HomeController;
use ThinkController;

class UserController {
    public  function showList(){
        $users = new HomeModelUserModel();
        var_dump($users);
    }
}
  • 快捷方式

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

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/6/20
 * Time: 10:39
 */

namespace HomeController;
use ThinkController;

class UserController {
    public  function showList(){
        $m = M('user');
        var_dump($m);
    }
}

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

 

 

原文地址:https://www.cnblogs.com/xidongyu/p/5600650.html