最近将php版本从7.1升级到7.2 然后
count(): Parameter must be an array or an object that implements Countable
count函数在PHP7.2版本中已经是严格要求传入的参数类型了,只能是数组或者 Countable 对象。而在laraval 5.3
protected function callScope(callable $scope, $parameters = [])
{
array_unshift($parameters, $this);
$query = $this->getQuery();
//问题出现在这里 $query->wheres 结果为 null 导致count报错
$originalWhereCount = count($query->wheres);
$result = $scope(...array_values($parameters)) ?: $this;
if ($this->shouldNestWheresForScope($query, $originalWhereCount)) {
$this->nestWheresForScope($query, $originalWhereCount);
}
return $result;
}
解决方案:
1.降低php版本至于7.2以下
2.保证至少有一个条件 比如 $query->where('deleted_at','==','null')
网友评论