为啥我得到错误count():参数必须是在laravel中实现Countable的数组或对象?

Posted

技术标签:

【中文标题】为啥我得到错误count():参数必须是在laravel中实现Countable的数组或对象?【英文标题】:why im getting error count(): Parameter must be an array or an object that implements Countable in laravel?为什么我得到错误count():参数必须是在laravel中实现Countable的数组或对象? 【发布时间】:2020-03-07 20:18:50 【问题描述】:

我试图在我的项目中定义一个本地范围以在我的主页中显示流行(下载次数最多)...所以这是我的文件模型代码:

        public function scopePopular($query)
        
        return $query->orderBy('file_download_num');
        

如您所知,“file_download_num”是数据库中的字段,我试图从中获取数据... 所以这就是我在 HomeController 中使用这个范围的方式:

        $popularFiles = File::Popular()->get();

我没有在我的控制器或模型中使用count() 方法!但仍然出现错误!所以有什么建议吗? 注意:php版本为7.3

【问题讨论】:

提供堆栈跟踪 @lagbox 我该怎么办? @navid 希望对您有所帮助:***.com/a/53425861/6850994 @Poldo 不幸的是没有工作...... 应该是File::popular()->get() 【参考方案1】:

我发现在控制器中添加toArray() 方法可以帮助count() 方法正常工作...它为我工作...所以控制器应该是这样的:

$popularFiles = File::Popular()->get()->toArray();

【讨论】:

以上是关于为啥我得到错误count():参数必须是在laravel中实现Countable的数组或对象?的主要内容,如果未能解决你的问题,请参考以下文章

消息:count():参数必须是在centos上实现Countable codeigniter的数组或对象

计数错误但我在LINQ表达式中没有使用Count,

为啥我得到表达式必须有类类型错误? [复制]

count():参数必须是在codeigniter中实现Countable的数组或者对象

PHP 警告:count():参数必须是在 C:\\htdocs\my.php 中实现 Countable 的数组或对象 [关闭]

为啥我的 Graphql 项目抛出错误:字段类型必须是输出类型但得到:未定义