04 tp6 的查数据 find、select、findOrEmpty、findOrFail、toArray、selectOrFail、value、column《ThinkPHP6 入门到电商实战》
01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》02 控制器《ThinkPHP6 入门到电商实战》03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》04 tp6 的查数据《ThinkPHP6 入门到电商实战》05 tp6 的数据添加《ThinkPHP6 入门到电商实战》若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书
文章目录(更新中…)
01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》
02 控制器《ThinkPHP6 入门到电商实战》
03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》
04 tp6 的查数据《ThinkPHP6 入门到电商实战》
05 tp6 的数据添加《ThinkPHP6 入门到电商实战》
06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》
07查询表达式 及 page分页、order 排序《ThinkPHP6 入门到电商实战》
08 获取器 withAttr、多连缀、whereRaw、事务、数据集《ThinkPHP6 入门到电商实战》
若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。
一、查数据的不同方法
1.1 table 方法 的单条数据查询
table 方法是查询数据的一种方法,在查询时需要指定数据库表名,并且可以指定是查找一条数据还是多条数据。
例如如下方式则是使用table查询一条数据(引用官方手册),其中的-> 所链接的操作被称为链式操作:
// table方法必须指定完整的数据表名
Db::table('think_user')->where('id', 1)->find();
1.1.1 table 的 find 操作
以上示例中 think_user 表示当前数据库的表名且表名必须完整,而后面所链接的 where 表示传入一个条件,在此处表示 id 值为 1 的数据,最后的 find 表示执行 find 操作。
此时我们查看数据库中的表:
在此我们查询一条 id 为 5 的数据,那么代码可以编写为:
Db::table('student')->where('id', 5)->find();
此时在index.php 控制器中增加一个 select 方法:
public function select(){
//table find
$res=Db::table('student')->where('id', 5)->find();
dump($res);
}
最后使用 dump 输出结果,访问该方法后将会得到 null,当查询为空时则为null:
1.1.2 find 的 findOrEmpty、findOrFail 操作
若想在查询结果为 null 时返回空数据,那么可以使用 findOrEmpty 进行查询,例如如下代码:
public function select(){
$res=Db::table('student')->where('id', 6)->findOrEmpty();
dump($res);
}
此时访问后结果如下:
若想在查询为空时返回异常,那么直接使用 findOrFail 查询即可:
public function select(){
$res=Db::table('student')->where('id', 6)->findOrFail();
dump($res);
}
此时访问后结果如下:
1.2 table 方法 的多条数据查询
在 1.1 中的示例均是单条数据查询,在这里咱们开始介绍多少数据的查询方式。
1.2.1 table 的 select 操作
在之前使用了find 查询单条数据,在这里咱们使用 select 查询多条数据,示例如下(示例来源官方手册):
Db::table('think_user')->where('status', 1)->select();
若此时我们需要查询数据表中身高为 170 的学生,那么此时表如下:
查询代码即可写成:
Db::table('student')->where('height', 170)->select();
那么此时 select 方法可以修改成:
public function select(){
$res=Db::table('student')->where('height', 170)->select();
dump($res);
}
此时结果如下:
由于此时所查询的是数据集,并不是单挑数据,所以此时的结果为多条数据。
1.2.2 select 的 selectOrFail、toArray 操作
find 有 finOrFail 操作,那么同样的 select 也有此操作,当查询数据集时若返回为空想要抛出异常,那么就使用 selectOrFail,此时代码如下:
$res=Db::table('student')->where('height', 170)->selectOrFail();
过多举例不做演示了,因为效果跟 find 的对应方法类似,此时演示 toArray 方法;toArray 方法表示将数据集转换为数组。有些同学可能疑惑,本身查询到的数据不是数组嘛?其实本身查询到的数据并不是数组,而是 Collection :

此时转为数组直接使用 toArray方法即可:
$res=Db::table('student')->where('height', 170)->select()->toArray();
结果如下:

1.3 value 指定返回值
在查询一条数据时,可以使用 value 指定返回值内容,例如如下代码:
public function select(){
$res=Db::table('student')->where('id', 5)->value('name');
dump($res);
}
其中 value 表示指定返回值的内容,那么此时查询到数据后,返回结果如下:
若数据为空则返回 null:

1.3 column 指定返回值
在单条数据时我们可以使用 value 返回指定内容,但是在多条数据时怎么办呢?此时可以使用 column 指定多条数据返回值的内容,例如如下代码:
public function select(){
$res=Db::table('student')->where('height', 170)->column('name','nickname');
dump($res);
}
此时再 column 中指定了返回的内容列,那么此时访问后结果如下:
闭包
更多推荐

所有评论(0)