首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >解决了laravel 5.4应用程序升级到php 7.2的问题

解决了laravel 5.4应用程序升级到php 7.2的问题
EN

Stack Overflow用户
提问于 2017-12-15 06:55:49
回答 5查看 14K关注 0票数 7

本周,我已经将我的laravel应用程序php版本升级为php7.2,从那时起,我的laravel应用程序就面临着很大的问题。在将php升级到7.2之前,每件事情都做得很好。

主要问题是关于抛出此错误的array_merge()计数()、和函数:

对于array_merge()函数,代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
$array = array_merge(
                $model->toSearchableArray(), $model->scoutMetadata()
            );

            if (empty($array)) {
                return;
            }

ErrorException·array_merge():参数#1不是数组。

例如,当模型不返回记录并返回null时,我将面临count()错误:

代码语言:javascript
代码运行次数:0
运行
复制
count(TutorialReview::where('TutorialID', 5)->where('UserID', 6)->get())

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

我的laravel版本是5.4

现在我的问题是如何解决这些问题,升级到Laravel5.5是否解决了任何问题?

EN

回答 5

Stack Overflow用户

发布于 2017-12-15 09:08:34

中,PHP7.2中,在以下RFC中更改了count()行为:可数

但是您可以使用->count()laravel中进行计数,下面是一个例子:

代码语言:javascript
代码运行次数:0
运行
复制
$count = TutorialReview::where('TutorialID', 5)->where('UserID', 6)->get()->count();

这样你就能得到记录的总数。

票数 5
EN

Stack Overflow用户

发布于 2018-03-09 10:31:04

只需在@之前添加count即可。也就是。

代码语言:javascript
代码运行次数:0
运行
复制
@count(object or array);
票数 4
EN

Stack Overflow用户

发布于 2017-12-15 07:51:40

要解决() array_merge()问题,请尝试以下步骤:

  1. 带有数据的app/ sluggable.php配置文件 return ['source' => null, 'maxLength' => null, 'method' => null, 'separator' => '-', 'unique' => true, 'uniqueSuffix' => null, 'includeTrashed' => false, 'reserved' => null, 'onUpdate' => false, ];
  2. 执行命令,php artisan config:cache

解决count()问题的:尝尝这个

代码语言:javascript
代码运行次数:0
运行
复制
count(): Parameter must be an array or an object that implements Countable.

实际上,这不是一个错误,而是一种预期的行为。Laravel5.4或5.5与PHP7.2不完全兼容。在PHP7.2 看看这个上,Count()行为只是改变

另一种方法就是使用PHP7.1或更低的版本,直到兼容性问题得到解决。

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

https://stackoverflow.com/questions/47827268

复制
相关文章

相似问题

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