美文网首页程序员
count(): Parameter must be an ar

count(): Parameter must be an ar

作者: 拉风的老衲 | 来源:发表于2019-04-19 10:01 被阅读1次

    最近将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')

    相关文章

      网友评论

        本文标题:count(): Parameter must be an ar

        本文链接:https://www.haomeiwen.com/subject/btvfgqtx.html