Laravel Eloquent get获取空的数据问题

时间:2021-05-03 18:22:12

在用laravel框架来获取数据,若数据不存在时,以为会返回空,其实不是的,其实是一个 collection 值,会返回如下:

object(Illuminate\Database\Eloquent\Collection)#191 (1) {
["items":protected]=>
array(0) {
}
}
$result = User::where('id', 100)->get();

当 $result 为空时,empty($result) 是不为false的,还是有值的,如上,因此要用 count($result) 来验证;或者修改获取语句,改为

$result = User::where('id', 100)->get()->toArray();

则会把 $result 转化为数组,这样 empty($result) 就有效果了。