Php count():参数必须是在Yii2中实现可数的数组或对象

Php count():参数必须是在Yii2中实现可数的数组或对象,php,yii2,xampp,Php,Yii2,Xampp,我在validate user(验证用户)中使用xammpv3.2.2时出现以下错误: count():参数必须是实现可计数的数组或对象 我不知道这个错误是否取决于xampp、yii2或PHPV7.2.3 in C:\xampp\htdocs\payesh\vendor\yiisoft\yii2\validators\UniqueValidator.php at line 136 if ($this->modelExists($targetClass, $conditio

我在validate user(验证用户)中使用xammpv3.2.2时出现以下错误:

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

我不知道这个错误是否取决于xampp、yii2或PHPV7.2.3

in C:\xampp\htdocs\payesh\vendor\yiisoft\yii2\validators\UniqueValidator.php at line 136

        if ($this->modelExists($targetClass, $conditions, $model)) {
            if (count($targetAttribute) > 1) { //error mentions here
                $this->addComboNotUniqueError($model, $attribute);
            } else {
                $this->addError($model, $attribute, $this->message);
            }
        }
    }
这是我的用户模型:

public function signup() {
     if ($this->validate()) { // the error mentions here too
            $user = new User();
            $user->username = $this->email;
            $user->email = $this->email;
     if ($user->save(false)) {
                return $user;
    }
    }
此错误页面的图片可能有助于更好地理解:

错误页的其余部分:


我该怎么办?

您需要升级到Yii2的最新版本(或至少2.0.13)-与PHP 7.2的兼容性在2.0 13版本中得到了显著提高,请参阅


但一般来说,如果您使用的是最新版本的PHP,那么您应该使用最新版本的Yii——将过时的框架版本与最新的PHP版本一起使用可能会带来很多问题。特别是PHP7.2带来了许多BC中断,在这个版本中有许多东西被中断。

什么是$targetAttribute?错误是它需要一个数组,但ist不是。请在应用了唯一性的位置显示验证validator@DieterKr我不知道,现在开始了yii2@NitinPund你能告诉我更多吗?你是说我的模型规则吗?是的,你的模型规则你确定如果我升级我的yii2,我的问题将被删除吗?是的,你可以在链接PR中看到,这一行在2.0.13版本中被更改。是的,它起作用了,非常感谢。我升级到Yii 2.0.11,问题就解决了。当然,在第一次升级中,作曲家的更新有问题,但在第二次升级中。