Model(模型)部分主要完成了数据库的连接和数据库内容的加载。其中包括以下内容:
通过url,访问php编辑界面。http://localhost/phpmyadmin
首先创建数据库,数据库名为tp (记住这个名字,后面的数据库配置中会用到)助于选择utf8_general_ci类型。
新建数据表
建立数据库前缀为tp_,记住这个前缀,后续配置中会用到
数据库中包含id, user, email, date等信息,如上图。
注意:数据库类型选择。
再插入一些用户数据信息,只要填写user, email, 日期三个字段即可。
tp可以自动连接包括MongoDb, mySQL等多种数据库。
在在全局配置\common\conf\config.php中,插入下面的mysql数据库配置信息
//全局配置定义 'DB_TYPE' => 'mysql', //数据库类型 'DB_HOST' => 'localhost', 'DB_NAME' => 'tp', //数据库名称 'DB_USER' => 'root', //用户名 'DB_PWD' => '', //密码,这里为空 'DB_PORT' => 3306, //数据库端口 'DB_PREFIX' => 'tp_', //数据库表前缀
在\Home\Controller\UserController.class.php中,首先导入model
use Think\Model;
再创建Model基类,传递User参数,并打印表单
public function model(){ //创建model基类,传递user表 $user = new Model('User'); var_dump($user); }
通过URL: http://localhost/thinkphp/index.php/Home/User/Model, 数据库中全部内容被打印出来
这里表示数据库连接成功。
通过select方法,可仅仅显示user信息。
var_dump($user->select());
为了便于调试,在全局配置\common\conf\config.php中,开启调试开关
//页面调试工具 'SHOW_PAGE_TRACE' => true,
上面是采用new Model('User')方法,连接数据库。
其中Model类可以传递三个参数:数据库名,前缀名,数据库连接。
//$user = new Model ('User','tp_','database connecton');
采用m方法,不需要导入命名空间。
$user = M('User');
在\Home\Model\目录下,创建UserModel.class.php,并创建以下内容
<?php namespace Home\Model; use Think\Model; //创建UserModel空类 class UserModel extends Model {}
在控制器中,可以直接采用UserModel,不再需要'User'参数
导入UserModel
use Home\Model\UserModel;
创建UserModel
$user = new UserModel();
注意:这里类名UserModel,其中User必须和前面的数据库名称对应。如果数据库名称为Myuser,则创建的类名为MyuserModel。如果数据库名称为user_type,则类名为UserTypeModel
var_dump($user->getDbFields());
显示缓存中的字段信息。
这时如果修改了数据库信息,前端是无法反应出来的。仅仅在删除缓存之后,才能够正确显示结果。
因此开发阶段,数据库经常变更,因此无需缓存。在发布之后,采用缓存方式,可以提高性能。