缺什么补什么:别拿数据库语句硬抗业务逻辑

很多转岗或自学 PHP 的开发者,写到增删改查时依然习惯在控制器里直接拼接 SQL 语句或者滥用底层查询构造器。一旦遇到字段格式化输出、写入前自动处理密码加密、或者批量数据校验,代码立刻变成一团乱麻。这门聚焦 ThinkPHP5 模型篇的教程,解决的就是只会写 SQL 而不懂运用面向对象模型进行数据持久化的能力缺口。它把数据表抽象成具体的业务实体,帮你把杂乱的数据处理逻辑从控制器剥离出来。如果你目前对模型的概念仅停留在“知道有这么个东西”,但实际项目里还是到处写原生的增删改查,那这部分内容就是为你准备的查漏补缺材料。

重点突破:从定义绑定到读写器拦截

这套资料的核心主线非常清晰,建议按照目录顺序先啃透前两块内容。第一块是模型定义与底层绑定,不要跳过看似枯燥的重设数据表和重设数据库环节,这是理解多库部署和复杂业务表名映射的前提,能帮你搞清楚模型类到底是怎么和实际物理表关联上的。第二块是基础的增删改查操作,重点体会单条与批量操作的底层差异。第三块则是整个模型篇的精髓,即读取器和修改器。很多新手不明白为什么存入数据库时要自动转格式,读取展示时要自动加前缀,看完修改器和读取器的拦截机制,你就会明白如何用一行代码替代控制器里大量的字段处理判断。建议在看视频时,本地务必起一个相同环境的项目,每看完一个操作演示,立刻在本地数据库里验证新增和查询的结果,不要只用眼睛看代码。

学完应能独立做的事与配套练习建议

看完这部分模型篇,你应该能脱离手写 SQL,独立为一个全新的业务模块设计完整的模型层。具体来说,你需要能回答并解决以下几个问题:如何让模型自动映射到非默认前缀的数据表?批量插入大量数据时模型方法该怎么调用?当用户输入的明文密码提交过来时,怎么通过修改器在写入数据库前自动完成加密?当查询出时间戳格式时,怎么通过读取器在展示前自动格式化为人类可读的日期?在配套练习上,建议自己手写一个简单的用户管理模块,包含注册和列表展示功能。强制要求自己不调用任何底层数据库方法,全程只用模型对象的链式操作。在注册逻辑里接入修改器处理密码字段,在列表展示里接入读取器处理时间字段。把这些跑通,模型层的基础闭环才算真正补齐,后续再去看关联模型等高级特性才不会觉得像听天书。

课程目录

1 七日成蝶课程体系说明(2019) (44:54)
2 (第一天)课程概览,学我所需 (04:17)
3 (第一天)模型定义(上) (11:33)
4 (第一天)模型定义(下) (09:38)
5 (第一天)模型定义-重设数据表 (09:50)
6 (第一天)模型定义-重设数据库 (04:42)
7 (第二天)基础操作-新增数据 (08:11)
8 (第二天)单条数据新增 (04:50)
9 (第二天)批量数据新增 (03:59)
10 (第二天)基础操作-查询数据 (06:28)
11 (第二天)单条数据查询 (10:21)
12 (第二天)批量数据列表 (08:30)
13 (第二天)基础操作-更新与删除数据 (03:31)
14 (第二天)模型数据更新 (10:21)
15 (第二天)模型数据删除 (05:36)
16 (第三天)读取器和修改器(上) (11:44)
17 (第三天)读取器和修改器(中) (06:36)
18 (第三天)读取器和修改器(下) (05:41)
19 (第四天)查询范围scope(上) (09:22)
20 (第四天)查询范围scope(下) (17:25)
21 (第五天)类型转换和自动完成 (16:20)
22 (第五天)类型转换实战 (12:02)
23 (第五天)自动时间戳实战 (17:50)
24 (第五天)自动完成(上) (11:54)
25 (第五天)自动完成(下) (06:03)
26 (第六天)案例:表单输入与验证 (16:48)
27 (第六天)案例:构建模板 (07:58)
28 (第六天)案例:提交数据 (06:29)
29 (第六天)浏览器调试技巧 (03:25)
30 (第六天)案例:表单验证基础 (13:20)
31 (第六天)案例:表单验证进阶 (11:54)
32 (第六天)案例:验证信息定制 (04:27)
33 (第六天)案例:控制器表单验证 (09:20)
34 (第七天)一对一关联理论讲解 (16:54)
35 (第七天)一对一关联实战-写入 (12:55)
36 (第七天)一对一关联实战-查询 (02:58)
37 (第七天)一对一关联实战-更新 (02:47)
38 (第七天)一对一关联实战-删除 (03:39)
39 (第七天)一对多关联(上) (07:48)
40 (第七天)一对多关联(下) (20:02)