首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >count():参数必须是数组或实现Countable的对象

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

Stack Overflow用户
提问于 2018-01-19 22:43:04
回答 14查看 83.5K关注 0票数 37

我正面临着一个奇怪的案子。我在生产环境中遇到一个错误,而在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

在实现代码中。我使用:

代码语言:javascript
复制
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行)

正如你在这张图中看到的:

你知道这背后的原因是什么吗?该如何修复呢?

EN

回答 14

Stack Overflow用户

发布于 2018-11-22 15:29:45

将这段代码放在route文件的开头,它会很好地工作

代码语言:javascript
复制
if(version_compare(PHP_VERSION, '7.2.0', '>=')) {
    error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
}
票数 61
EN

Stack Overflow用户

发布于 2018-03-13 06:01:29

这是一个documented change in PHP 7.2。您需要将Laravel更新到5.6或将PHP降级到7.1。

票数 50
EN

Stack Overflow用户

发布于 2019-08-27 16:14:09

替换

代码语言:javascript
复制
$originalWhereCount = count($query->wheres);

通过

代码语言:javascript
复制
$originalWhereCount = count((array)$query->wheres);

在……里面

\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48343557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档