ThinkPHP6.x | API接口 | 十天精品课堂系列 学习笔记

Controller 使用 fetch 方法调用 view模板出来的静态页面。
html静态文件使用php原生语法输出: hello php

接口开发生成控制器 php think make:controller pmsw --api

2023-5-7
安装 MySQL Workbench V8.0.33 软件
tp6_localdomain_com数据库新建tp6_user数据表
在tp6_localdomain_com.tp6_user表上右键, Table Inspector, DDL 可以看到SQL语句:

CREATE TABLE `tp6_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户名',
`password` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '密码',
`phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号码',
`email` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '邮箱',
`create_time` int(11) DEFAULT NULL,
`update_time` int(11) DEFAULT NULL,
`delete_time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='用户表'

fav3_localdomain_com数据库fun_test表结构:

CREATE TABLE `fun_test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`cate_id` int(11) NOT NULL COMMENT '分类ID',
`cate_ids` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类IDS',
`week` enum('monday','tuesday','wednesday') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'monday' COMMENT '星期=[monday:星期一,tuesday:星期二,wednesday:星期三]',
`sexdata` enum('male','female','secret') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'secret' COMMENT '性别=[male:男,female:女,secret:保密]',
`textarea` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内容',
`image` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '图片=1',
`images` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '图片集合=10',
`attach_file` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '附件=1',
`attach_files` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '附件=10',
`keywords` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '关键字',
`price` float(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '价格',
`startdate` date NOT NULL COMMENT '开始日期',
`activitytime` datetime NOT NULL COMMENT '活动时间',
`timestaptime` timestamp NOT NULL COMMENT '时间戳\r\n',
`year` year(4) NOT NULL COMMENT '年',
`times` time NOT NULL COMMENT '时间',
`switch` tinyint(1) NOT NULL DEFAULT '1' COMMENT '上架状态=[0:下架,1:正常]',
`open_switch` tinyint(1) NOT NULL DEFAULT '0' COMMENT '开关=[0:OFF,1:ON]',
`teststate` set('1','2','3') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1' COMMENT '复选=[1:选项1,2:选项2,3:选项3]',
`test2state` set('0','1','2') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '2' COMMENT '爱好=[0:唱歌,1:跳舞,2:游泳]',
`editor_content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '富文本',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '描述',
`test_color` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '颜色',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态=[0:OFF,1:ON]',
`create_time` int(11) DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `test` (`keywords`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT COMMENT='测试表'

更新表数据内容
UPDATE `tp6_localdomain_com`.`tp6_user` SET `delete_time` = '0' WHERE (`id` > '1');

[2023-5-9]
命令行:
php think make:model User
在app目录下生成model\User.php 文件
目前不知道控制器下的User.php如何使用model下的User.php文件显示数据库内容。???
!!! 看了ThinkPHP6。0文档, 加上个人天赋!!!

在Controller\User.php中增加
use app\model\User as UserModel;
在index()方法中输入
$resule = UserModel::where('id'>0)->select();
return $resule;
浏览器中输入: http://tp6.localdomain.com/user
神奇的结果出在浏览器中~~~~ 哈哈哈~~~

[2023-5-10]
学习《ThinkPHP6.x | API接口 | 十天精品课堂系列》第3节,生成标准API
新建BaseApi抽象类, User类中继承, 直接调用
判断获取用户数据结束是否存在, 返回不同的提示信息。

[2023-5-18]
学习《ThinkPHP6.x | API接口 | 十天精品课堂系列》第4节 API分页
app\controller\User.php index()
$resule = UserModel::field('name')->paginate(5);
http://tp6.localdomain.com/user?page=3
$resule = UserModel::field('name, create_time')->page(3, 5)->select();
这种方法是程序里固定的第几页
解决方法如下:
修改BaseApi.php, 增加__construct()函数,从配置中读取page和page_size
修改$resule = UserModel::field('id, name, create_time')->page($this->page, $this->pageSize)->select();
这样就可以传参数进来了。
http://tp6.localdomain.com/user?page=2&page_size=3
学习《ThinkPHP6.x | API接口 | 十天精品课堂系列》第7节 新增数据
新建验证器
php think make:validate User

[2024-1-19]

学习了解了Thinkphp中的控制器与视图方法。案例实践:

http://u22043s.com:8081的主页改版,将主页改成多个案例的列表,点击新建页面到详细内容。

错误做法:修改index.html内容,案例列表增加超级链接,_blank,指向到tp6api.html。上传到服务器后,点击打不开!!!

正确做法:1.修改index.html,指向tp6api。 app\controller\index.html文件中新建 tp6api函数,内容return view();

2.在view\index\目录下新建tp6api.html文件,即此文件。

3.修改route\app.php,增加 Route::get('tp6api', 'index/tp6api');

经过以上3个步骤,再访问才会正常打开。

用Dreamweaver新的版本 CS5, V11,在设计窗口打字测试,好像还是会存在文字错位的问题。跟在Dreamweaver8里面差不多。这是为什么呢?

还是使用Dreamweaver8,文字的编码是UTF-8,在“编辑”中找到“首选项”;在“首选项”中找到“字体”,全部设置成统一的字体, 可都设置为“新宋体”;文字错位的问题完美解决。

[2024-3-26] 操作实例

php think make:controller Le5010

php think make:model Le5010

php think make:validate Le5010

[2024-10-16]