企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**1 小试身手** 1 数据库配置 打开应用目录的数据库配置文件 application\database.php 修改数据库配置为 ~~~ return [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'tp5', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => 'root', // 数据库连接端口 'hostport' => '3306', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'tp5_', // 数据库调试模式 'debug' => APP_DEBUG, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', ]; ~~~ 基础修改包括 hostname,hostport,database, username,password,prefix。 2 浏览器输入http://127.0.0.1/ ![](https://box.kancloud.cn/2016-02-24_56cd4dd1e245e.jpg) 点击箭头所指phpMyAdmin管理,进入数据库登录界面 ![](https://box.kancloud.cn/2016-02-24_56cd4dd210776.jpg) 输入默认账号root密码root,进入数据库管理界面。 ![](https://box.kancloud.cn/2016-02-24_56cd4dd2284d3.jpg) 创建数据库tp5与数据表tp5_test ![](https://box.kancloud.cn/2016-02-24_56cd4dd2439f1.jpg) ![](https://box.kancloud.cn/2016-02-24_56cd4dd25f51b.jpg) ![](https://box.kancloud.cn/2016-02-24_56cd4e9837f66.jpg) ![](https://box.kancloud.cn/2016-02-24_56cd4dd2761ab.jpg) 注意这里的数据库tp5与数据表tp5_test与数据库配置的对应关系 ~~~ database =>'tp5', prefix =>'tp5_, ~~~ 3 打开目录D:\upnp5.6\htdocs\tp5\application\index\controller 新建文件Modeltest.php,输入以下内容 ~~~ <?php namespace app\index\controller; class Modeltest { public function echo_model(){ $Model = M('test'); // tp5框架在App::run()使用Response::send()统一返回客户端数据 // 因此控制器最后最好使用 return $result; 形式的语句返回数据到App::run() // 这里只是作为学习测试。 dump($Model); } public function add_model(){ $Model = M('test'); $data = [ 'id' =>1, 'name' =>'test_name', 'title' =>'test_title', 'sort' =>1 ]; $result = $Model->add($data); // tp5框架在App::run()使用Response::send()统一返回客户端数据 // 因此控制器最后最好使用 return $result; 形式的语句返回数据到App::run() // 这里只是作为学习测试。 dump($result); } public function select_model(){ $Model = M('test'); $return1 = $Model->where('id=1')->getField('title'); dump($return1); $return2 = $Model->where('id=1')->find(); dump($return2); $return3 = $Model->where('id=1')->select(); dump($return3); } public function update_model(){ $Model = M('test'); $data = [ 'name' =>'update_name', 'title' =>'update_title' ]; $result = $Model->where('id=1')->save($data); dump($result); } public function delete_model(){ $Model = M('test'); $result = $Model->where('id=1')->delete(); dump($result); } } ~~~ 3 浏览器输入 http://127.0.0.1/tp5/public/index.php/Index/ModelTest/echo_model 由上节可知这里运行Modeltest.php的echo_model()方法。 输出Model的对象信息 4 浏览器输入 http://127.0.0.1/tp5/public/index.php/Index/ModelTest/add_model 向数据库添加信息, 返回int(1),表示添加成功 5 浏览器输入 http://127.0.0.1/tp5/public/index.php/Index/ModelTest/select_model 查询数据库信息 输出如下![](https://box.kancloud.cn/2016-02-24_56cd4dd28f1bd.jpg) 6 浏览器输入 http://127.0.0.1/tp5/public/index.php/Index/ModelTest/delete_model 返回int(1)表示删除成功 再次输入 http://127.0.0.1/tp5/public/index.php/Index/ModelTest/select_model 返回空值。 7 总结 以上是数据库的增删改查的基本操作。 1 修改应用的数据库配置文件database.php。 2 数据库后台添加数据库与数据表 3 控制器使用M()方法创建$Model对象 4 使用$Model对象的add() find() save() delete()方法实现数据的增删改查 **2 开发场景** 数据模型用来保存系统信息以及用户操作信息。 在thinkp框架中可以使用强大的链式操作来操作数据库。 还可以自定义数据模型实现多表操作。 更多操作参考[官方手册](http://www.kancloud.cn/thinkphp/thinkphp5-guide/90122)与[tp3.2的模型](http://www.kancloud.cn/thinkphp/thinkphp_quickstart/2142) **3 开发进阶** 模块中自定义模型是在application/index/下建立model目录。 建立对应模型文件,继承think\Model, 实现业务数据操作与控制器分离。 具体实现见[官方手册](http://www.kancloud.cn/thinkphp/thinkphp5-guide/90122) **4 框架底层** 1 模型是对数据库操作的抽象。在thinkphp/helper.php中定义了两个方法来简化模型的创建 ~~~ function M($name = '', $tablePrefix = null, $connection = '') { return \think\Loader::table($name, ['prefix' => $tablePrefix, 'connection' => $connection]); } function D($name = '', $layer = MODEL_LAYER) { return \think\Loader::model($name, $layer); } ~~~ 分析可知是调用Loader自动加载器实现模型的实例化 2 Loader自动加载器的实例化操作见 [另:自动加载器实例化](http://www.kancloud.cn/zmwtp/tp5/120008)