博客列表 >ThinkPHP6的安装、运行、基础的CURD操作

ThinkPHP6的安装、运行、基础的CURD操作

残破的蛋蛋
残破的蛋蛋原创
2021年05月29日 18:39:031780浏览

安装ThinkPHP6

一、安装ThinkPHP6框架

注意:ThinkPHP6.0运行环境要求PHP7.1+,因此在安装TP框架之前需要检测一下当前的PHP版本。可以使用php -v命令来查看PHP版本。

  1. php -v

php -v

自从TP6.0开始,必须通过Composer方式安装和更新,所以无法通过git下载。因此我们还需要检测一下是否安装了Composer,使用composer -v命令来查看。

  1. componser -v

composer -v

Composer工具的具体安装方法参考:Composer中文文档

1.1 安装ThinkPHP

  1. # 全新安装TP框架
  2. composer create-project topthink/think tp

安装TP框架

1.2 更新框架

如果以前安装过TP框架,可以切换到应用根目录下执行以下命令更新框架。

  1. # 更新框架
  2. composer update topthink/framework

注意:更新框架核心代码会删除thinkphp目录,因此不要在核心框架里书写任何业务逻辑代码,该操作不会删除应用目录(app目录)。

二、部署多应用

由于TP框架安装后默认的是单应用模式,如果要使用多应用模式需要先将app目录下的controller文件夹全部删除,然后在应用根目录下执行下面的命令安装多应用扩展。

删除controller文件夹

  1. # 部署多应用
  2. composer require topthink/think-multi-app

部署多应用

三、相关命令行

    1. 自动生成应用目录和对应的文件
  1. # 命令格式
  2. php think build 目录名称
  3. # 生成后台应用目录
  4. php think build admin
  5. # 生成前台应用目录
  6. php think build index
    1. 生成控制器类
  1. # 生成控制器
  2. php think make:controller 应用名称@应用类名 --plain

其中—plain也可以省略,如果省略了这个参数,那么生成的控制类会稍有不同,如果下图对比:

命令行创建控制器带参数

命令行创建控制器不带参数

通过对比可以发现,如果不带--plain参数的话,不仅仅会自动创建index()方法,还会自动生成一些其他方法。

    1. 安装视图扩展
  1. # 如果需要think-template模板引擎,需要先安装think-view模板引擎驱动
  2. composer require topthink/think-view

四、CURD基本操作

  1. class Index extends BaseController
  2. {
  3. // 查询语句
  4. // 1. ` find ` 方法查询单条语句,结果返回一维数组,如果数据不存在,返回 null
  5. public function find() {
  6. $result = Db::table('boke')->find(1);
  7. var_dump($result);
  8. }
  9. // 2. ` select ` 方法查询多条数据,结果返回一个对象,数据如果不存在,返回空对象
  10. public function select() {
  11. $result = Db::table('boke')->where('status', 0)->select();
  12. var_dump($result);
  13. }
  14. // 3. ` value ` 方法查询某个字段的值,结果返回文本,数据不存在,返回 null,字段不存在会报错
  15. public function value() {
  16. $result = Db::table('boke')->value('id');
  17. var_dump($result); // 返回值类型是一个 mixed
  18. }
  19. // 4. ` column ` 查询某一列的值,如果存在返回一维数组,不存在返回空数组
  20. public function column() {
  21. $result = Db::table('boke')->column('img');
  22. var_dump($result);
  23. }
  24. // ================================================================================
  25. // 添加语句
  26. // 1. ` insert ` 添加一条语句,成功返回条数
  27. public function insert() {
  28. $data = [
  29. 'title' => '在线考试系统实战【公益直播】',
  30. 'img'=>'https://img.php.cn/upload/course/000/000/001/60862c6ba99af257.png',
  31. 'content'=>'三天大型公益直播课《模仿驾校考试系统实战开发》,使用框架: bootstrap、jquery、ThinkPHP6.0',
  32. 'date'=>'2021-05-06',
  33. 'cat'=>'PHP'
  34. ];
  35. $result = Db::table('boke')->insert($data);
  36. var_dump($result);
  37. }
  38. // 2. ` insertGetId ` 添加一条数据,成功返回自增的主键
  39. public function insertGetId() {
  40. $data = [
  41. 'title'=>'新版APP全新上线,打造最佳学习体验',
  42. 'img'=>'https://img.php.cn/upload/article/000/000/003/6093abebf1766794.jpg',
  43. 'content'=>'程序员梦开始的地方,支持视频课程、直播课堂、手册等学习功能',
  44. 'date'=>'2021-05-08',
  45. 'cat'=>'APP'
  46. ];
  47. $result = Db::table('boke')->insertGetId($data);
  48. var_dump($result);
  49. }
  50. // 3. ` insertAll ` 添加多条数据(批量添加),成功返回添加的条数
  51. public function insertAll() {
  52. $data = [
  53. [
  54. 'title'=>'在线报名系统(移动端)实战【公益直播】',
  55. 'img'=>'https://img.php.cn/upload/course/000/000/001/6072932baeb4e177.png',
  56. 'content'=>'大型公益课,2021.4.12号晚上20:00开始,连续5晚,全程直播,一起开发一个中小学兴趣班报名系统!',
  57. 'date'=>'2021-04-23',
  58. 'cat'=>'PHP'
  59. ],
  60. [
  61. 'title'=>'Vue.js开发基础',
  62. 'img'=>'https://img.php.cn/upload/course/000/000/015/6077fb8677ac6448.png',
  63. 'content'=>'Vue.js是非常流行的一个前端开发框架,采用渐进式底层向上开发模式,使用了主流的MVVM设计框架。本课以Vue.js开发的核心理念与常用技术为背景,让您在最短的时间内理解并掌握Vue.js框架的核心知识,为进一步深造打下良好的基础。',
  64. 'date'=>'2021-04-28',
  65. 'cat'=>'JS'
  66. ]
  67. ];
  68. $result = Db::table('boke')->insertAll($data);
  69. var_dump($result);
  70. }
  71. // 3. 修改语句
  72. // - 3.1 update 修改数据,成功返回条数
  73. // - 注意: 使用 ` update ` 更新数据
  74. public function update() {
  75. $data = ['title' => '修改后的标题'];
  76. $result = Db::table('boke')->where('id', 1)->update($data);
  77. var_dump($result);
  78. }
  79. // - 3.2 ` inc ` 自增字段的值
  80. public function inc() {
  81. # 字段的值增加1
  82. $inc = Db::table('boke')->where('id', 1)->inc('num', 1)->update();
  83. var_dump($inc);
  84. # 字段的值增加5
  85. $inc = Db::table('boke')->where('id', 1)->inc('num', 8)->update();
  86. var_dump($inc);
  87. }
  88. // - 3.3 ` dec ` 自减字段的值
  89. public function dec() {
  90. # 字段值自减1
  91. $dec = Db::table('boke')->where('id', 1)->dec('num', 2)->update();
  92. var_dump($dec);
  93. # 字段值自减5
  94. $dec = Db::table('boke')->where('id', 5)->dec('num', 5)->update();
  95. var_dump($dec);
  96. }
  97. // ================================================================================
  98. // - delete 删除数据,成功返回条数,没有删除返回0
  99. public function delete() {
  100. # 根据条件删除数据
  101. $result = Db::table('boke')->where('id', 1)->delete();
  102. print_r($result);
  103. # 删除逐主键为 2 的数据
  104. $result = Db::table('boke')->delete(2);
  105. var_dump($result);
  106. # 删除整张表的数据
  107. $result = Db::table('boke')->delete(true);
  108. var_dump($result);
  109. }
  110. // - ` useSoftDelete ` 软删除,不建议真实删除数据,TP系统提供了软删除机制
  111. public function useSoftDelete()
  112. {
  113. # 软删除
  114. $delete = Db::table('boke')->where('id', 1)->useSoftDelete('status', 9)->delete();
  115. print_r($delete);
  116. }
  117. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议