【Laravel / Collection】empty判定がgetで取得したCollectionには効かない

えびさん

LaravelのEloquentを使用してDBからget取得した際、
Collectionにはempty判定が効かないという罠にハマった

問題が出たソース

$users = $user->where('pref_code', 10)->get();

if (!empty($users)) {
  // データが存在しなくてもここに入ってしまう...!
}

emptyは、配列の場合は判定がうまくいくけどCollectionを渡すとうまくいかない

CollectionのisEmpty()を使用して解決

$users = $user->where('pref_id', 10)->get();

if (!$users->isEmpty()) {
  // データが存在する場合のみ入る
}