在用laravel框架来获取数据,若数据不存在时,以为会返回空,其实不是的,其实是一个 collection 值,会返回如下:
object(IlluminateDatabaseEloquentCollection)#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) 就有效果了。