抛出警告:count(): Parameter must be an array or an object that implements Countable
Warning thrown: count(): Parameter must be an array or an object that implements Countable
同时使用 "laravel/framework": "5.8.*",
我收到以下错误:
$user = App\User::find(314);
dump(PHP_VERSION);
dump(is_object($user));
dump(is_array($user));
dump(count($user));
dd($user);
我收到以下错误 count(): Parameter must be an array or an object that implements Countable
但是当我将警告静音时。我们得到正确的输出 @dump(count($user));
"7.2.19"
true
false
1
User {#821 ▼
#table: "users"
#guarded: array:5 [▶]
....
注意:count() 在集合超过 1 时起作用。
$users = App\User::find([12,13,14,15,165,166,1666,133,11,111]);
dump(PHP_VERSION);
dump(is_object($user));
dump(is_array($user));
dump(count($user));
dd($user);
输出:
"7.2.19"
true
false
9
Collection {#825 ▼
#items: array:9 [▶]
}
当返回的数据不同于数组或对象时,不支持 count
方法。另一种方法是使用 where
语句,该语句在调用时总是 returns 一个数组:
$users = App\User::whereIn('id', [12,13,14,15,165,166,1666,133,11,111])->get();
var_dump($users);
当你只通过 id 查找时,为什么要计算一个 $user
?当然它只会 return 1 或 0。
我发现这对 collections
最有用
if(count($user->toArray()) > 0)
也许是更好的方法(未经测试)
count(($user ?? []))
同时使用 "laravel/framework": "5.8.*",
我收到以下错误:
$user = App\User::find(314);
dump(PHP_VERSION);
dump(is_object($user));
dump(is_array($user));
dump(count($user));
dd($user);
我收到以下错误 count(): Parameter must be an array or an object that implements Countable
但是当我将警告静音时。我们得到正确的输出 @dump(count($user));
"7.2.19"
true
false
1
User {#821 ▼
#table: "users"
#guarded: array:5 [▶]
....
注意:count() 在集合超过 1 时起作用。
$users = App\User::find([12,13,14,15,165,166,1666,133,11,111]);
dump(PHP_VERSION);
dump(is_object($user));
dump(is_array($user));
dump(count($user));
dd($user);
输出:
"7.2.19"
true
false
9
Collection {#825 ▼
#items: array:9 [▶]
}
当返回的数据不同于数组或对象时,不支持 count
方法。另一种方法是使用 where
语句,该语句在调用时总是 returns 一个数组:
$users = App\User::whereIn('id', [12,13,14,15,165,166,1666,133,11,111])->get();
var_dump($users);
当你只通过 id 查找时,为什么要计算一个 $user
?当然它只会 return 1 或 0。
我发现这对 collections
最有用if(count($user->toArray()) > 0)
也许是更好的方法(未经测试)
count(($user ?? []))