我正面临着一个奇怪的案子。我在生产环境中遇到一个错误,而在dev中它工作得很好。
开发: 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中实现Countable的对象(936行)
正如你在这张图中看到的:

你知道这背后的原因是什么吗?该如何修复呢?
发布于 2018-11-22 15:29:45
将这段代码放在route文件的开头,它会很好地工作
if(version_compare(PHP_VERSION, '7.2.0', '>=')) {
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
}发布于 2018-03-13 06:01:29
这是一个documented change in PHP 7.2。您需要将Laravel更新到5.6或将PHP降级到7.1。
发布于 2019-08-27 16:14:09
替换
$originalWhereCount = count($query->wheres);通过
$originalWhereCount = count((array)$query->wheres);在……里面
\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php
https://stackoverflow.com/questions/48343557
复制相似问题