Laravel count():参数必须是实现Countable的数组或对象

时间:2018-04-12 13:10:29

标签: laravel wamp database-migration

在wamp我正在迁移laravel项目。当我在作曲家中运行此命令时 -

php artisan migrate --seed

显示此错误:

  

在Builder.php第936行:count():参数必须是数组或   实现Countable的对象

http://prntscr.com/j47gzs

这是php 7.2错误,但我使用的是php 7.1版本,但仍然出现计数错误。

请帮忙解决。

2 个答案:

答案 0 :(得分:0)

用最少的代码,我会去spitball。问题最多(几乎肯定)可能在你的种子中。你错误地使用count()函数/方法的某个地方 - 有充分的理由,你有一些选项可以混淆。

在PHP中:

假设我们有一个数组:

$array = array('One', 'Two')

现在我们想要使用count()函数找到其中的项目数:

$length = count($array) // $length = 2

您还可以使用sizeof(),它只是count()

的别名
$length = sizeof($array) // $length = 2

在Laravel中:

Laravel Collection对象有一个方法count(),它基本上计算集合中可填充条目的数量。这是必要的,因为即使是空的'集合可能不一定会导致空集合对象。

如果您正在处理集合对象$collection

$length = $collection->count() // $length = 2

这里最重要的一点是,如果您使用Eloquent查询播种,或者在数组上使用collect()帮助器,那么请使用Laravel路由。否则,只需使用本机PHP函数。

希望这有帮助!

答案 1 :(得分:0)

很久以前,我现在有相同的错误。所以我尝试检查模型并进行更改

protected $fillable = 'name';

成为

protected $fillable = ['name'];

就可以了。谢谢^^