2.6 模型支持
第 13 节 / 共 46 节
课程:ThinkPHP
上一节的数据库操作比较麻烦,首先需要连接,然后再执行sql语句,最后处理返回的结果。下面介绍一种更方便的技术:ORM。
所谓ORM是对象-关系模型(Object Rational Model),指的是数据库表和php类的一一对应的关系。
项目里面已经写好了几个这样的php类
1.Users.PHP
这是一个数据库映射类,类的所有属性都和表一一对应。表在app/model/Users.php。这里User类就表示这是一个实体类,对应着数据库的表users。关键代码可看注释:
<?phpnamespace app\model;use think\Model;// 模型类必须继承think\Model类class Users extends Model { // 如果主键名不为id,则必须手工指定主键名称 protected $pk = 'userid'; // 为当前模型指定表名称,如果类名与表名一致,则可以不用指定 protected $name = 'users'; // 用户表与文章表之间一对多的关系,函数名称建议为表名 public function article() { // 指定与模型类Aticle建立一对多关系,通过外键userid进行关联 return $this->hasMany(Article::class, 'userid'); } // 定义一个查询方法,根据userid查询用户表的一行数据 public function findByUserid($userid) { $user = $this->find($userid); return $user; // 直接以关联数组返回一行数据 } // 再定义一个查询所有用户表数据的方法,返回所有必须使用select方法 public function findAll() { $users = $this->select(); return $users; }}2.测试一下
下面是使用方法,可以看到,进行数据库操作的时候再也不用连接、执行SQL等麻烦的事情。
<?phpnamespace app\Controller;use app\BaseController;use think\captcha\facade\Captcha;use app\model\Users;class Demo extends BaseController{//....其他函数public function basic(){ $user = new Users(); $row = $user->findByUserid(1); return json($row);}}记得要设置路由 router/app.php,让请求/basic绑定到上面这个函数
最后通过localhost/basic, 看是否能返回id为1的用户的数据。
3.典型错误
修改数据库配置 config/database.php:

需要把username从qiang改成root
把password从'123456'改成''
数据库名woniu必须一致
如果还是出账号qiang密码错的错误提示,如图所示:

那么就是.env文件还要修改,项目下有一个.env文件,里面是数据库的连接配置:

它仍然是旧的数据,改掉它们就可以正确显示了:

4.修改上一节的做法
上一节的登录使用的方法过于冗长,如果有多个查询,就要重复复制那些连接信息、多次连接,一旦账号密码有变动,那么改动起来就非常麻烦。采用这一节的方法,重新把登录完成
《ThinkPHP》课程目录
介绍PHP框架ThinkPHP6
- 第1章 配置环境
- 1.1 第一个ThinkPHP8项目
- 1.2 Composer项目结构介绍
- 1.3 启动项目
- 1.4 ThinkPHP8项目的部署
- 1.5 idea教育版免费一年获取办法
- 第2章 基本特性
- 2.1 响应HTTP请求
- 2.2 响应html
- 2.3 登录-前端
- 2.4 登录-后台
- 2.5 数据库基本操作
- 2.6 模型支持
- 2.7 登录状态和session
- 2.8 注册
- 2.9 主页文章列表
- 2.10 单篇文章内容
- 2.11 完善文章页面
- 2.12 文件上传
- 第3章 实训
- 3.1 项目准备
- 3.2 登录
- 3.3 数据库登录和json规范返回
- 3.4 注册
- 3.5 查询课程
- 3.6 个人信息
- 3.7 修改昵称
- 3.8 *主页信息
- 3.9 统计
- 3.10 学习-侧边导航
- 3.11 *学习-右边内容
- 3.12 管理-课程
- 3.13 管理-班级
- 3.14 管理-班级-学生换班
- 3.15 管理-班级-查找学生
- 第4章 git代码管理
- 4.1 建立代码库
- 4.2 代码管理提交、推送和拉取
- 4.3 从云克隆代码
- 第5章 项目重构成spirngboot
- 5.1 项目技术介绍
- 5.2 创建一个ThinkPHP8项目
- 5.4 移入网页和PHP代码
- 5.5 模型和服务
- 5.7 测试
- 第6章 nginx