Blogger Information
Blog 45
fans 3
comment 0
visits 45662
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
ThinkPHP6的安装、运行、基础的CURD操作
残破的蛋蛋
Original
1751 people have browsed it

安装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. }
Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post