当前位置: 首页 > 知识库问答 >
问题:

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

祁刚毅
2023-03-14

我面临着奇怪的案子。我在生产环境中面临一个错误,而在开发中它工作正常。

开发: Laravel 5.4.28 PHP 7.0.13 MYSQL 5.7.17

制作:Laravel 5.4.28 PHP 7.2.1 MYSQL 5.7.20

在实现代码中。我用过:

namespace App;
use Illuminate\Support\Facades\Storage;
use Laravel\Scout\Searchable;
use Illuminate\Database\Eloquent\Model;

class Artwork extends Model
{
  use Searchable;

在开发中,它运行良好。但是在生产中,它给我这个错误:Count():参数必须是一个数组或一个在Builder.php中实现可数的对象(第936行)

如图所示:

你知道这背后的原因吗?如何修复?

共有3个答案

谢典
2023-03-14

替换

$originalWhereCount = count($query->wheres);

通过

$originalWhereCount = count((array)$query->wheres);

在里面

\供应商\laravel\框架\src\照明\数据库\雄辩\Builder.php

赫连睿
2023-03-14

这是PHP 7.2中记录的更改。您需要将Laravel更新到5.6或将PHP降级到版本7.1。

岑畅
2023-03-14

把这段代码放在你的路由文件的开头,就可以正常工作了

if(version_compare(PHP_VERSION, '7.2.0', '>=')) {
    error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
}
 类似资料: