laravel判断数据库中是否有该值

自己在学习过程中的一点问题 记下来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$users = DB::table('users')->where('id',$id)->get();

if($users){
//有数据
}else{
//没数据
}

if(is_null($users)){
//
}

if(empty($users)){
//
}

以上方法都是不行的,在使用Laravel Eloquent模型时,我们要判断取出的结果集是否为空,但我们发现直接使用is_null或empty是无法判段它结果集是否为空的。 var_dump之后我们很容易发现,即使取到的空结果集, Eloquent仍然会返回object(Illuminate\Support\Collection)对象实例。其实,Eloquent已经给我们封装几个判断方法如下:

1
2
3
4
5
6
7
8
9
10
$users = DB::table('users')->where('id',$id)->get();
if ($users->first()) {//若无数据,打印出来为null
//
}
if (!$users->isEmpty()) {
//
}
if ($users->count()) {//若无数据,打印出来为0
//
}

评论