Thinkphp6---查询返回

在做Thinkphp开发的时候,对于查询结果返回,很多时候在写逻辑的时候,都会犹豫一下下,下面就做一个整理:

一、find查询

$result = Order::where('id',$id)->find();
$result = Order::find($id);

这里 find 如果查询到就返回查询到的对象,如果没有查询到返回【null】

如果我们需要数组,可以这样写:

$result = Order::where($where)->find();
return $result ? $result->toArray() : null;

但是不能这样:

$result = Order::where($where)->find()->toArray();

因为【find】如果没有查询到,返回的是【null】,而 NULL 是没有办法 toArray() 的。

如果查询不存在返回空对象,可以使用【findOrEmpty】

Order::where($where)->findOrEmpty();

这里如果没有查询到返回的就是空对象,就可以使用 toArray():

Order::where($where)->findOrEmpty()->toArray();

如果没有查询到希望抛异常,可以使用【findOrFail】

Order::where($where)->findOrFail();

二、select 查询列表

$result = Order::where('status',1)->select();
$result = Order::select();

select查询查询返回的是对象,如果需要转为数组可以直接 toArray()

$result = Order::where('status',1)->select()->toArray();
$result = Order::select()->toArray();

没有查询到,则返回空数组。

打完收工!

posted @ 2022-08-03 11:08  帅到要去报警  阅读(1799)  评论(0编辑  收藏  举报