引发警告:count():参数必须是实现Countable的数组或对象

时间:2019-09-27 02:18:24

标签: laravel laravel-5.7 laravel-5.8 php-7.2

使用"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 [▶]
}

3 个答案:

答案 0 :(得分:1)

当返回的数据可能不同于数组或对象时,不支持Room In DateTime Desired Output (minutes) 2015-10-18 19:30:00 60 2015-10-18 21:39:00 99 方法。一种替代方法是使用count语句,该语句在被调用时始终返回一个数组:

where

答案 1 :(得分:0)

为什么仅通过ID查找$user时为什么要计数?当然,它只会返回1或0。

答案 2 :(得分:0)

我发现这对于收藏最有用

q)select from table where not ([]venue) in ([]venue:a) venue ------ "tst3" // or a function to help you q)f:{[lst] select from table where not ([]venue) in ([]venue:lst)} q)f[a] venue ------ "tst3"

也许是更好的方法(未经测试)

if(count($user->toArray()) > 0)