laravel 查詢數據庫獲取結果如何判斷是否為空?
大家使用的場景是這樣的:
1 $users = DB::table('users')->where('id',$id)->get(); 2 3 if($users){ 4 //有數據 5 }else{ 6 //沒數據 7 } 8 或 9 if(is_null($users)){ 10 // 11 } 12 或 13 if(empty($users)){ 14 // 15 }
以上方法都是不行的,在使用 Laravel Eloquent 模型時,我們要判斷取出的結果集是否為空,但我們發現直接使用 is_null
或 empty
是無法判段它結果集是否為空的!!!
var_dump 之后我們很容易發現,即使取到的空結果集,Eloquent 仍然會返回object(Illuminate\Support\Collection)對象實例。
其實,Eloquent 已經給我們封裝幾個判斷方法如下:
$users = DB::table('users')->where('id',$id)->get();
1 if ($users->first()) { 2 // 3 } 4 if (!$users->isEmpty()) { 5 // 6 } 7 if ($users->count()) { 8 // 9 }
以后就這么判斷是否為空了!