ati*_*ary 7 php laravel laravel-5.4 laravel-5.5
我本周已将我的laravel应用程序php版本升级到php 7.2,从那时起我在laravel应用程序中遇到了大问题.在将PHP升级到7.2之前,每件事都很有效.
主要问题是关于count()和array_merge()函数抛出此错误:
为array_merge()函数的代码是如下:
$array = array_merge(
$model->toSearchableArray(), $model->scoutMetadata()
);
if (empty($array)) {
return;
}
Run Code Online (Sandbox Code Playgroud)
ErrorException·array_merge():参数#1不是数组.
count()当模型没有返回任何记录并返回null时,我在此代码中遇到错误:
count(TutorialReview::where('TutorialID', 5)->where('UserID', 6)->get())
Run Code Online (Sandbox Code Playgroud)
count():参数必须是实现Countable的数组或对象.
我的laravel版本是5.4
现在我的问题是如何解决问题,并升级到laravel 5.5解决任何问题?
在PHP 7.2中改变count()了以下RFC中的行为:https://wiki.php.net/rfc/counting_non_countables
但你可以->count()在laravel中使用,这是一个例子:
$count = TutorialReview::where('TutorialID', 5)->where('UserID', 6)->get()->count();
Run Code Online (Sandbox Code Playgroud)
这样您就可以获得总记录数.
尝试这个:
$array = array_merge(
collect($model->toSearchableArray())->toArray(), $model->scoutMetadata()
);
Run Code Online (Sandbox Code Playgroud)
->count()另外,在计算模型实例时,也可以这样做count()