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表。